Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 12h00   #1
Invité régulier
 
Inscription : mars 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 12
Points : 5
Points : 5
Par défaut Multiplication php avec 2 décimales

Bonjour à tous!
Voici le code suivant qui fonctionne sans problème lorsque 'price_2' est un montant "rond", avec 2 zéros après la virgule comme p. ex. 99,00.
Code :
1
2
3
4
5
 
<?php
$total = ($_POST['participants']* $donnees['price_2']  ); 
echo "Prix total:", $total = number_format($total, 2, ',',' '), "euros";
?>
Par contre, si 'price_2' est p. ex. 99,01 ou 99,99, le code ne fonctionne pas correctement et ne prend pas en compte ce qui est derrière la virgule. Ainsi, 99,99 multiplié par 1 = 99,00, multiplié par 3 = 297,00 etc...
Je l'ai donc modifié comme suit:
Code :
1
2
3
4
5
 
<?php
$total = ($_POST['participants']* $donnees['price_2'] = number_format($donnees['price_2'], 2, ',',' ') ); 
echo "Prix total:", $total = number_format($total, 2, ',',' '), "euros";
?>
Mais le résultat est toujours le même, avec cette fois ce message d'erreur:
Code :
A non well formed numeric value encountered in...on line...
Malgré mes recherches, je ne trouve pas...
D'ores et déjà merci de votre aide!
crg227 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h58   #2
Nouveau Membre du Club
 
Avatar de sibelmoch
 
Homme Matthieu
Lycéen
Inscription : mars 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France

Informations professionnelles :
Activité : Lycéen
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 40
Points : 36
Points : 36
J'ai essayé ton code en effet il bug mais pourquoi tu utilises number format c'est pour conserver uniquement 2 chiffres après la virgule c'est ça? Parce que sans number format ça fonctionne très bien.
sibelmoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 17h37   #3
Invité régulier
 
Inscription : mars 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 12
Points : 5
Points : 5
Merci sibelmoch, mais effectivement, j'ai besoin de 2 chiffres après la virgule, d'où le 'number_format'!
crg227 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 23h46   #4
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 302
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 302
Points : 4 480
Points : 4 480
Citation:
Par contre, si 'price_2' est p. ex. 99,01 ou 99,99
pas d'opération avec un décimal ',' il faut un '.' ton numberformat avec le paramètre ',' est la pour modifier ce dernier.

une opération avec une ',' plante forcément.
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 08h15   #5
Invité régulier
 
Inscription : mars 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 12
Points : 5
Points : 5
Un grand merci à toi, Vil'Coyote. Effectivement, ça fonctionne parfaitement. J'avais pourtant consulté de nombreux tutoriaux, sans trouver quoi que ce soit sur le sujet. Bonne journée!
crg227 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h45.


 
 
 
 
Partenaires

Hébergement Web