Quelle est la commande PHP qui fait quelque chose de similaire à intval()
mais pour les décimales ?
Par exemple, j'ai la chaîne "33.66" et je veux la convertir en valeur décimale avant de l'envoyer à MSSQL.
Quelle est la commande PHP qui fait quelque chose de similaire à intval()
mais pour les décimales ?
Par exemple, j'ai la chaîne "33.66" et je veux la convertir en valeur décimale avant de l'envoyer à MSSQL.
Et si floatval()
?
$f = floatval("33.66");
Vous pouvez gagner quelques nanosecondes sur les conversions de type en utilisant le casting au lieu d'un appel de fonction. Mais ceci est du domaine de la micro-optimisation, donc ne vous inquiétez pas à moins que vous ne fassiez des millions de ces opérations par seconde.
$f = (float) "33.66";
Je recommande également d'apprendre à utiliser sscanf()
parce que parfois c'est la solution la plus pratique.
list($f) = sscanf("33.66", "%f");
Si vous voulez dire un flotteur :
$var = floatval("33.66")
Ou
$var = (float)"33.66";
Si vous avez besoin de la précision exacte d'une décimale, il n'y a pas de tel type en PHP. Il existe le type Mathématiques à précision arbitraire mais elle renvoie des chaînes de caractères, ce qui ne vous sera utile que pour effectuer des calculs.
Vous pouvez essayer floatval
mais les flottants sont potentiellement perdants.
Vous pouvez essayer de passer le numéro par sprintf
pour le mettre dans un format plus correct. La chaîne de format %.2f
produirait un nombre formaté en virgule flottante avec deux décimales. Les décimales excédentaires sont arrondies.
Je ne sais pas si sprintf convertira la valeur en un flottant en interne pour le formatage, donc le problème de perte pourrait toujours exister. Ceci étant dit, si vous ne vous souciez que de deux décimales, vous pouvez ne devrait pas doivent s'inquiéter de la perte de précision.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.