Affichage décimales dans un formulaire
evenrude
Messages postés
14
Statut
Membre
-
evenrude Messages postés 14 Statut Membre -
evenrude Messages postés 14 Statut Membre -
Bonjour,
J'ai créé un formulaire "bon de commande" avec prix HT, TVA et TTC, qui a l'air de fonctionner. On peut le voir à l'adresse : "http://www.maulegourmandise.fr/BDC.html".
Il s'agit d'un site joomla chez ovh.
Malheureusement, les nombres avec décimales s'affichent avec un point, et parfois avec un seul chiffre après la virgule quand il y a un zéro après, alors que j'aimerais que le format soit :"#,00#
J'ai tout essayé, le setlocale, des scripts de conversion, mais rien ne change.
Est-ce que quelqu'un aurait la gentillesse de me dire ce que j'ai fait de faux ? ou ce que j'ai oublié d'ajouter ?
Merci d'avance et bonne journée à tous les forumeux !
J'ai créé un formulaire "bon de commande" avec prix HT, TVA et TTC, qui a l'air de fonctionner. On peut le voir à l'adresse : "http://www.maulegourmandise.fr/BDC.html".
Il s'agit d'un site joomla chez ovh.
Malheureusement, les nombres avec décimales s'affichent avec un point, et parfois avec un seul chiffre après la virgule quand il y a un zéro après, alors que j'aimerais que le format soit :"#,00#
J'ai tout essayé, le setlocale, des scripts de conversion, mais rien ne change.
Est-ce que quelqu'un aurait la gentillesse de me dire ce que j'ai fait de faux ? ou ce que j'ai oublié d'ajouter ?
Merci d'avance et bonne journée à tous les forumeux !
A voir également:
- Affichage décimales dans un formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Affichage double ecran - Guide
- Formulaire de reclamation instagram - Guide
- Windows 11 affichage classique - Guide
4 réponses
un petit bout d'exemple
<?php $nombre=1589.526; echo 'Nombre non formate ='.$nombre; $nombre_formate=number_format($nombre,2,',',' '); // le nombre, nbr dec après la virgule (2), sep decimal (,) , separateur miliers (espace) //attention il faut qu'il y ait 2 ou 4 arguments mais pas 3 echo '<br />Nombre formate ='.$nombre_formate; ?>
Bonsoir,
Merci encore pour cette explication, malheureusement ça ne change rien à mon affichage. Au cas où j'ai essayé avec le replace("." , "," , $chaine) mais ça non plus ne change rien. Je n'y comprends plus rien. Voilà à quoi ressemble mes calculs :
for (var i=0; i<Nb_articles; i++) {
eval ('prix_i = document.Commande.prix'+i+'.value');
Total += Math.round(eval(prix_i)*100) / 100;
eval ('vtaxes_i= document.Commande.ttc'+i+'.value-document.Commande.prix'+i+'.value');
Total1 += Math.round(eval(vtaxes_i)*100) / 100;
eval ('ttc_i = document.Commande.ttc'+i+'.value');
Total2 += Math.round(eval(ttc_i)*100) / 100;
eval ('reduc_i = document.Commande.reduc'+i+'.value');
totreduc += Math.round(eval(reduc_i)*100) / 100;
}
Une autre suggestion si ce n'est pas trop demander ?
Merci et bon dimanche
Merci encore pour cette explication, malheureusement ça ne change rien à mon affichage. Au cas où j'ai essayé avec le replace("." , "," , $chaine) mais ça non plus ne change rien. Je n'y comprends plus rien. Voilà à quoi ressemble mes calculs :
for (var i=0; i<Nb_articles; i++) {
eval ('prix_i = document.Commande.prix'+i+'.value');
Total += Math.round(eval(prix_i)*100) / 100;
eval ('vtaxes_i= document.Commande.ttc'+i+'.value-document.Commande.prix'+i+'.value');
Total1 += Math.round(eval(vtaxes_i)*100) / 100;
eval ('ttc_i = document.Commande.ttc'+i+'.value');
Total2 += Math.round(eval(ttc_i)*100) / 100;
eval ('reduc_i = document.Commande.reduc'+i+'.value');
totreduc += Math.round(eval(reduc_i)*100) / 100;
}
Une autre suggestion si ce n'est pas trop demander ?
Merci et bon dimanche
J'avais compris que tu voulais ça en php, hors ton code c'est du javascript
alors tu dois trouver ton bonheur la:
http://www.javascriptfr.com
alors tu dois trouver ton bonheur la:
http://www.javascriptfr.com
Bonjour et merci pour ce commentaire. Ca montre mon ignorance !!! Mais entre-temps, ayant découvert que c'était du javascript, j'avais trouvé la fonction d'affichage de nombre dont tu parles et qui m'a bien servi. Je l'ai adapté à mon programme et ça donne :
function Virgule(valeur){
var valeur_str = valeur + '';
var valeur2 = valeur_str.replace(/\./,',');
var sch = valeur2.substring(valeur2.lastIndexOf(",")+1);
var len = sch.length;
var i = 0;
var decimales = 2
if (valeur2.indexOf(',') == -1) { // il n'y a pas de virgule ni de décimales
return valeur2+',00';
} else {
switch (len){
case 2: // une virgule et 2 décimales -> on ne fait rien car le point a été remplacé par un virgule
return valeur2;
break;
case 1: // une virgule et 1 décimale -> on rajoute un zéro
return valeur2+'0';
break;
default: // tous les cas à + de 2 décimales -> on tronque à 2 décimales
sch=valeur2.substring(0,valeur2.length-(len-2));
return sch;
break;
}
}
}
Comme quoi, grâce aux forums, on arrive à avancer, lentement mais surement. Merci encore
function Virgule(valeur){
var valeur_str = valeur + '';
var valeur2 = valeur_str.replace(/\./,',');
var sch = valeur2.substring(valeur2.lastIndexOf(",")+1);
var len = sch.length;
var i = 0;
var decimales = 2
if (valeur2.indexOf(',') == -1) { // il n'y a pas de virgule ni de décimales
return valeur2+',00';
} else {
switch (len){
case 2: // une virgule et 2 décimales -> on ne fait rien car le point a été remplacé par un virgule
return valeur2;
break;
case 1: // une virgule et 1 décimale -> on rajoute un zéro
return valeur2+'0';
break;
default: // tous les cas à + de 2 décimales -> on tronque à 2 décimales
sch=valeur2.substring(0,valeur2.length-(len-2));
return sch;
break;
}
}
}
Comme quoi, grâce aux forums, on arrive à avancer, lentement mais surement. Merci encore
J'ai vu cette fonction et je l'ai essayée, mais ça ne marche pas. A moins que je n'aie pas su l'implémenter. J'ai utilisé des math.round, du set locale, du number_format, des replace (point par virgule), mais comme je ne connais pas grand chose en php, je n'ai pas obtenu le résultat souhaité. Est-ce qu'éventuellement, à l'examen du code source, tu pourrais me dire où et comment je dois utiliser le number_format ? Merci d'avance et bon weekend