Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (51)
Print (66)
Programmation
PHP (66)
ASP (2)
CSS (26)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (261)
933 Sujets
12337 Réponses
Programmation > PHP > Fonction number_format
Fonction number_format
 J'ai un petit soucis avec la fonction number_format qui arrondi malgré moi les nombres à sa bonne convenance.

Exemple avec :


$nombre = -1.05334

number_format ($nombre, 1, ',', ' ')

// Ici $nombre devient -1,1 alors qu'il devrait devenir -1,0 ou -1 ...
Pourquoi ?
Posté le 14 04 2007 à 19h37
aguenard - Membre

Réponses - Fonction number_format
ceil(), float() pour arrondir... je ne sais pas pkoi sa arrondi pas dans le bon sens, number_format c'est pas l'idéal pour ton truc je pense.

Bon courage
Posté le 14 04 2007 à 20h22
psykoyo - Membre
Bon j'espère de tout coeur que quelqu'un trouvera solution à mon problème.
En attendant je vais faire un truc compliqué de substitution avec un EXPLODE et STR_REPLACE.

Merci.
Posté le 15 04 2007 à 11h50
aguenard - Membre
on arrive au résultat comme sa mais sa deconne sévère (il ne faut pas l'utiliser)
$nombre = "-1,05334";
$test = number_format ($nombre, 1, ',',' ');
// sa donne -1,0
echo $test;

http://php.net/numbe r_format
Peut être une piste avec ce commentaire car ton soucis vient de 05 je sèche et je pense que c'est impossible, sa arrondi au supérieur

// le commentaire
Just an observation:
The number_format rounds the value of the variable.

$val1 = 1.233;
$val2 = 1.235;
$val3 = 1.237;

echo number_format($val1,2,",",".") ; // returns: 1,23
echo number_format($val2,2,",",".") ; // returns: 1,24
echo number_format($val3,2,",",".") ; // returns: 1,24
Posté le 15 04 2007 à 20h11
psykoyo - Membre
 Comme le dit psykoyo, number_format arrondit le nombre à n décimales (le con), n étant le deuxième paramètre de la fonction donc c'est normal que t'obtiennes -1,1.

L'arrondi se fait à la décimal au dessus si la "centimale" est > =5, et au-dessous si <=4.
Donc c'est tout à fait normal d'avoir -1,05 arrondi à -1.1.

Si tu veux -1 ou -1,0, tu peux en effet faire un ceil ou floor suivant si tu veux l'arrondi respectivement au-dessus ou au-dessous. Tu peux aussi faire une conversion à la volée (équivaut à utiliser ceil()):
number_format((int)$taVariable, 1, ',', ' '); //(int)-1.05 = -1
Posté le 15 04 2007 à 21h23
McFly - Membre - www
Ça ne vous a pas traversé l'esprit de mettre "0" pour l'argument "décimales" ?

Quant à l'arrondi, il est mathématiquement tout à fait correct.
Posté le 16 04 2007 à 20h23
symzo - Membre - www
0 pour l'argument décimale empêche de faire un format genre 1,x ... non ?
Posté le 17 04 2007 à 21h47
psykoyo - Membre
 Ca te donne bien un entier mais t'auras toujours un "problème" d'arrondi:
$int_var = 1.9;
print number_format($int_var, 0, ',', ' ');//2
$int_var = 1.4;
print number_format($int_var, 0, ',', ' ');//1
hu!
Posté le 18 04 2007 à 14h16
McFly - Membre - www
Sujets PHP
<< 1 2 3 4 5 6 7 >>
[résolu] mySQL & css
Auteur : geoffroy
Posté le 06 02 2007 à 15h00
11 Réponses (Nouveau sujet)
Sujet visité 823 fois
[Résolu] Mysql et (...)
Auteur : aguenard
Posté le 04 02 2007 à 17h25
3 Réponses (Nouveau sujet)
Sujet visité 952 fois
localisation
Auteur : senkante
Posté le 28 01 2007 à 17h20
9 Réponses (Nouveau sujet)
Sujet visité 1349 fois
PHP / XML
Auteur : benzor
Posté le 21 01 2007 à 12h11
21 Réponses (Nouveau sujet)
Sujet visité 1723 fois
Programme PHP
Auteur : caniche
Posté le 16 01 2007 à 08h05
43 Réponses (Nouveau sujet)
Sujet visité 1463 fois
CMS Multi Site et (...)
Auteur : Narno
Posté le 26 01 2007 à 12h28
6 Réponses (Nouveau sujet)
Sujet visité 1193 fois
HTACCESS - URL (...)
Auteur : Narno
Posté le 12 07 2006 à 16h29
14 Réponses (Nouveau sujet)
Sujet visité 1033 fois
[Résolu] URL (...)
Auteur : mob
Posté le 14 01 2007 à 00h52
10 Réponses (Nouveau sujet)
Sujet visité 995 fois
Free - Internal (...)
Auteur : Narno
Posté le 22 12 2006 à 11h19
7 Réponses (Nouveau sujet)
Sujet visité 1043 fois
Offre CDI - (...)
Auteur : McFly
Posté le 12 01 2007 à 18h54
0 Réponse (Nouveau sujet)
Sujet visité 610 fois

Sujet bloqué
<< 1 2 3 4 5 6 7 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006