52 votes

Quelle est la meilleure façon d'obtenir de la partie fractionnaire d'un flotteur en PHP?

Simple: Comment vous trouvez la partie fractionnaire d'un nombre à virgule flottante en PHP? Par exemple, si j'ai la valeur de 1,25, je veux retourner à 0,25.

78voto

nlucaroni Points 21502
$x = $x - floor($x)

15voto

Alan Storm Points 82442

N'oubliez pas que vous ne pouvez pas faire confiance arithmétique à virgule flottante pour être précis à 100%. Si vous êtes inquiète, vous aurez envie de regarder dans le BCMath Précision Arbitraire Mathématiques fonctions.

$x = 22.732423423423432;
$x = bcsub(abs($x),floor(abs($x)),20);

Vous pourriez également pirater sur la chaîne vous-même

$x = 22.732423423423432;    
$x = strstr ( $x, '.' );

9voto

Michael Fenwick Points 506

La réponse fournie par nlucaroni ne fonctionne que pour les nombres positifs. Une possible solution qui fonctionne à la fois positifs et les nombres négatifs est:

$x = $x - intval($x)

9voto

Jeremy Ruten Points 59989

Si le nombre est négatif, vous aurez à le faire:

 $x = abs($x) - floor(abs($x));

3voto

Ethan Gunderson Points 2254

Mes compétences en PHP sont manque, mais vous pourriez moins le résultat d'un étage à partir du numéro d'origine

Prograide.com

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.

Powered by:

X