Question sur round()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Question sur round()

par lacfab » 09 avr. 2009, 17:21

yeah :) merciiiiiii

par dunbar » 09 avr. 2009, 17:09

Ici c'est plus claire
Dans ton cas
$numero = round(300 + 100 + 200);
$aff_numero = number_format($numero, 2, '.', '');
echo $aff_numero;

par lacfab » 09 avr. 2009, 17:00

Je veux bien lire le manuel mais c'est clair comme de l'eau de roche ...

http://www.manuelphp.com/php/function.number-format.php

Je dois comprendre quoi ? je dois faire number_format(2000,2,?,?)

Merci d'éclairer ma lanterne ^^

par dunbar » 09 avr. 2009, 15:06

Surtout la Notation anglaise sans séparateur des centaines. :wink:

par Ryle » 09 avr. 2009, 14:48

Et si on commençait par le début, et que tu regardais la documentation de la fonction
pour savoir à quoi elle sert, ce qu'elle peut faire et comment elle fonctionne ? ;p

par lacfab » 09 avr. 2009, 14:40

Tu me diras je peux faire le round pour le calcul et le number_format pour l'affichage ... y a-til un moyen de supprimer la virgule qui sépare les milliers ???

par Ryle » 09 avr. 2009, 14:26

Euh... vi... c'est normal.... la fonction number_format(), comme sa description l'indique, a pour unique but de formater un nombre pour l'affichage, pas pour des calculs ultérieurs ;)

par lacfab » 09 avr. 2009, 14:20

@Lyrio : round(300 + 100 + 200,2)[/quote] le ,2 signifie deux chiffres après la virgule, ce n'est pas 200.2 mais bien 200


@Ryle : ok merci pour la précision ... mais le number_format() ne convient pas car si j'ai 4 chiffres (2000) il sort 2,000.00 ... et si je fais un calcul par la suite avec ce chiffre tout est faux.

Tant pis je me passerai de la décimale :'(

edit pour Truc
exemple : number_format(300 + 600 + 200,2)

par Ryle » 09 avr. 2009, 14:11

Euh.... y a deux choses :

- pour php, le séparateur de décimal est le point, pas la virgule. La virgule permet de séparer les arguments de ta fonction.
round(300 + 100 + 200,2)
Ca signifie 300+100+200 avec une précision de 2. Le résultat sera toujours "600" quoi qu'il arrive et quelle que soit la précision.

- pour mettre en forme un montant avec des décimales et faire apparaitre les 0 "inutiles", il faut utiliser number_format() comme l'a indiqué truc

par Truc » 09 avr. 2009, 14:02

C'est bien ce que j'ai fais ;-)
round(300 + 100 + 200,2) il me sort 600 alors que je voudrais qu'il m'affiche 600.00
je ne vois pas l'utilisation de number_format() ;)

par Lirio » 09 avr. 2009, 12:12

round(300 + 100 + 200,2) il me sort 600 alors que je voudrais qu'il m'affiche 600.00
Je crois pouvoir dire que c'est normale.
Php a appris à compter
300+100+200.2 = 600.2.

Si tu arrondi à zéro chiffres, tu obtiens bien 600
Si tu arrondi à uhn chiffre, tu obtiens 600.2
Et à trois chiffres, c'est 600.20
Encore que je ne suis pas sur du dernier cas, parceque c'est pas vraiment un arrondis.
Bref. Php ne peut donc pas sortir 600.00, simplement parce que cela n'est pas le résultat du calcul.

par lacfab » 09 avr. 2009, 12:00

C'est bien ce que j'ai fais ;-)
round(300 + 100 + 200,2) il me sort 600 alors que je voudrais qu'il m'affiche 600.00
A noter que je dois juste modifier l'affichage le calcul me convient très bien. Evidemment je ne peux pas mettre ".00" derrière car si le calcul amène une décimale ça fout la merde ;)

par Truc » 09 avr. 2009, 10:48

Il faut toujours montrer ce qu'on a essayé... non pas pour qu'on puisse se moquer mais pour voir le pourquoi du comment du "ça ne marche pas" ;)

par lacfab » 09 avr. 2009, 10:41

non non j'utilise round, j'avais juste testé number_format mais ça ne convient pas.

par orgerix » 09 avr. 2009, 10:29

Je n'ia pas trop compris. Tu utilise number_format(), puis tu utilise le résultat pour des calculs ensuite ?

Si c'est le cas, c'est parce que tu n'utlise pas bin la focntion. Il ne faut l'utiliser qu'avant d'envoyer le nombre vers une sortie (dans une page HTML, un fichier, etc...). Il me semble qu'il renvoie une chaine. Même si php permet faciement de transformerdes chaines en nombres, tu aura des résultats étrange. Donc, tant que tu as des calculs à faire, tu reste avec le nombre tel quel, puis quand tu veux l'afficher, tu utlise number_format()