Quelle est la commande php qui fait quelque chose de similaire à par exemple. J'ai une chaîne "33.66" et je veux le convertir en valeur décimale avant de l'envoyer à MSSQL. P> intval () code>, mais pour les décimales? p>
4 Réponses :
Vous pouvez essayer Floatval code>
, mais des flotteurs sont potentiellement pertinents. P>
Vous pouvez essayer d'exécuter le numéro via Je ne suis pas sûr que Sprintf convertira la valeur en un float en interne pour le formatage, le problème de la perte pourrait encore exister. Cela étant dit, si vous ne vous inquiétez que pour deux décimales, vous ne devez pas em> besoin de vous inquiéter de la perte de précision. P> sprintf code>
pour l'obtenir à un format plus correct. La chaîne de format %. 2f code> produirait un nombre formaté à virgule flottante avec deux décimales. Des endroits excédentaires sont arrondis. P>
Si vous voulez dire un flotteur: ou p> Si vous avez besoin de la précision exacte d'une décimale, il n'y a pas de tel Tapez PHP. Il y a le mathématiques de précision arbitraire extension, mais il retournera des cordes, Donc, ce n'est que utile pour vous lorsque vous effectuez des calculs. p> p>
Que diriez-vous de floabeval () code>
?
list($f) = sscanf("33.66", "%f");
Syntaxe alternative: SSCANF ("33.66", "% f", $ f); code> <- cela crée une variable de référence.
PHP est une langue de typée de manière lâche. Peu importe si vous avez P>
$ x = 33.66; p>
ou p>
$ x = "33.66"; p>
L'envoyer à MSSQL sera le même, peu importe. p>
Voulez-vous simplement vous assurer qu'il est correctement formaté ou est un flotteur réel? P>
Eh bien, il s'est avéré que j'avais des devis uniques avant de fermer les deux crochets de citation. C'était la raison pour laquelle MSSQL le refusait XD Merci pour la note.
Et MySQL fera des conversions de chaîne <->. Ce n'est pas toujours une bonne idée.