Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1050 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Format d'un nombre (Décimales)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Format d'un nombre (Décimales)

n°663942
bird80
Posté le 05-03-2004 à 10:13:23  profilanswer
 

Bonjour,
 
Après plusieurs calculs je voudrais afficher un nombre avec 2 décimales au max et si c'est un entier ou un réel avec une décimale n'afficher que ce qui est utile (pas de 0).
 
ex:
0,00 -> 0
1,30 -> 1,3
1,68 -> 1,68
1,444-> 1,44
1,449-> 1,44
 
Sinon au lieu de 0 après le calcul suivant 5.55+5.55-11.1 j'ai -1.7763568394003E-015!!! et ca je ne comprends pas.

mood
Publicité
Posté le 05-03-2004 à 10:13:23  profilanswer
 

n°664042
T509
$job->GetJob(now)
Posté le 05-03-2004 à 11:04:45  profilanswer
 
n°664083
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-03-2004 à 11:25:05  profilanswer
 
n°664101
T509
$job->GetJob(now)
Posté le 05-03-2004 à 11:31:42  profilanswer
 

C'est une bonne solution anapajari

n°664156
bird80
Posté le 05-03-2004 à 12:02:02  profilanswer
 

si j'utilise round()
round($val,???)
je met quoi comme argument2 pour mon cas, parce que $val je ne le connais pas ca peut être 12 1.55 ou bien 7.546116 et ce que je veux c'est max 2 decimales et aucune lorsque c'est une valeur entière et une seule lorsque $val est de type 1.70 -> 1.7

n°664173
bird80
Posté le 05-03-2004 à 12:11:49  profilanswer
 

Cette fonction me paraît être plus appropriée :)
 
<?
function cutzero($value) {  
   return preg_replace("/(\.\d+?)0+$/", "$1", $value)*1;
}
?>
 
Some examples:
 
<?
cutzero("4.7600" );    // returns 4.76
cutzero("4.7604" )      // returns 4.7604
cutzero("4.7000" );    // returns 4.7
cutzero("4.0000" );    // returns 4
?>  

n°664176
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-03-2004 à 12:19:18  profilanswer
 

oui sauf que ça t'arrondit pas tes nombres à deux chiffres après la virgule.
Donc il faut que tu fasses un truc dans le genre:

Code :
  1. function formatMyNumber($value) { 
  2.    return preg_replace("/(\.\d+?)0+$/", "$1", sprintf("%01.2f", $value));
  3. }

n°664181
bird80
Posté le 05-03-2004 à 12:26:51  profilanswer
 

en faite, je fais un number_format($val,2)

n°664183
bird80
Posté le 05-03-2004 à 12:33:44  profilanswer
 

ca fait un arrondi au sup aie :( et le sprintf aussi

n°664733
cerel
Posté le 05-03-2004 à 19:04:05  profilanswer
 

Tu multiplies par 100, tu tronques le superflu, tu divises par 100, tu affiches le resultat.  
Comme ca, tu n'as que 2 chiffres apres la virgules et non arrondi.


Message édité par cerel le 05-03-2004 à 19:04:29
mood
Publicité
Posté le 05-03-2004 à 19:04:05  profilanswer
 

n°664852
bird80
Posté le 05-03-2004 à 21:49:08  profilanswer
 

exactement ce que j'ai fais
 
Merci pour votre aide

n°664971
aspegic500​mg
Posté le 06-03-2004 à 00:11:37  profilanswer
 

Moi j'aurais fait une fonction bien crasseuse avec une boucle qui récupere le dernier chiffre du nombre, qui le vire si c'est un zero et qui continue jusqu'a ce que le dernier ne soit plus un zero :D
Je suis assez faignant sur les regex :ange:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Format d'un nombre (Décimales)

 

Sujets relatifs
[VB.NET] Incrémentation par nombre de saisieEcriture dans un fichier XLS : problème de format
nombre aléatoirenombre d'enregistrements dans un sous formulaire
Division sous DOS: résultat en nombre décimalLimiter le nombre de colonnes dans un diagramme Crystal Report
Nombre maxi d'enregistrements dans un table[ORACLE] Limiter le nombre de résultat d'une requette
[PHP] Nombre de ligne que contient une variable ?[Oracle 8i] Liaison avec Access : Perte des décimales
Plus de sujets relatifs à : Format d'un nombre (Décimales)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR