2009-09-09 8 views
0

j'utilise une boucle simple retour d'écho quelques chiffreschiffres ronds PHP, ajouter des nombres décimaux

<?php 
$inc = 0.25; 
$start = 0.25; 
$stop = 5.00; 
?> 

<?php while($start != ($stop + $inc)){ ?> 
<option><?php echo $start ?></option> 
<?php $start = $start + $inc; ?> 
<?php } ?> 

Cependant 5,00 apparaît comme 5 et 4.50 apparaît comme 4.5

Comment puis-je obtenir ce script afficher 5.00, 4.00, 3.00, 3.50

Aussi apoligise pour le titre, je ne sais pas comment expliquer ça!

Merci

+0

Vous pouvez également avoir un bug où votre boucle ne se termine pas parce que les nombres à virgule flottante ne sont pas exactes utilisez while ($ start <= ($ stop + ($ inc/2))) –

Répondre

6

utiliser ceci:

echo sprintf("%01.2f", $start) 
+1

Merci beaucoup. – dotty

1

Vous voulez utiliser printf() pour les chaînes formatées:

printf("%01.2f", $start) 

Le manuel complet pour (s) printf peut être trouvé here

1
<?php while($start != ($stop + $inc)){ ?> 
<option><?php printf('%01.2f', $start) ?></option> 
<?php $start = $start + $inc; ?> 
<?php } ?>