OVH Cloud OVH Cloud

2 décimales siouplé

14 réponses
Avatar
METIS
Bonjour,
c'est le surdoué du code...(;o))))

Dans mon petit calculateur (merci O.L., ASM), je souhaite que le
résultat zape les décimale au delà de 2, ou même arrondisse à 2 !!!
Il peut le faire ?
Ils peuvent le faire !!
J'en étais sûr...(;o))))

function devis() {
q=+document.form.quantite.value;
l=+document.form.largeur.value;
h=+document.form.hauteur.value;
s=+document.form.support.value;
m=+document.form.montage.value;
f=+document.form.finition.value;
e=+document.form.expedition.value;
p=+document.form.penc.value;
t=(q*l*h*(s+m+f))+(e)+(p);
document.form.total.value=t
}


--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...

10 réponses

1 2
Avatar
Patrice Becht
Salut Metis,

Pour arrondir ton resultat à deux décimale, faut ruser. Pour ça, utilise :
document.form.total.value=Math.round(t*100)/100;

Bonne journée.

Patrice

"METIS" a écrit dans le message de news:
4371ca9f$0$21298$
Bonjour,
c'est le surdoué du code...(;o))))

Dans mon petit calculateur (merci O.L., ASM), je souhaite que le résultat
zape les décimale au delà de 2, ou même arrondisse à 2 !!!
Il peut le faire ?
Ils peuvent le faire !!
J'en étais sûr...(;o))))

function devis() {
q=+document.form.quantite.value;
l=+document.form.largeur.value;
h=+document.form.hauteur.value;
s=+document.form.support.value;
m=+document.form.montage.value;
f=+document.form.finition.value;
e=+document.form.expedition.value;
p=+document.form.penc.value;
t=(q*l*h*(s+m+f))+(e)+(p);
document.form.total.value=t
}


--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...



Avatar
METIS
Patrice Becht wrote:
Salut Metis,

Pour arrondir ton resultat à deux décimale, faut ruser. Pour ça,
utilise : document.form.total.value=Math.round(t*100)/100;


==> Yep !!!
Heureusement qu'il y a quelque matheux dans le coin !!!(;o))))
Merci, merci.

--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...

Avatar
Bul
perso j'utilise :
resultat = valeur_origine.toFixed(nbr_decimales);
@+
Avatar
METIS
Bul wrote:
perso j'utilise :
resultat = valeur_origine.toFixed(nbr_decimales);


==> Bon...
Je garde. Merci !!!

--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...

Avatar
Dr John Stockton
JRS: In article <43722660$0$19261$, dated Wed, 9
Nov 2005 11:39:59, seen in news:fr.comp.lang.javascript, Patrice Becht
posted :

Pour arrondir ton resultat à deux décimale, faut ruser. Pour ça, utilise :
document.form.total.value=Math.round(t*100)/100;


Mais si t=0.0, value := "0" : nul decimale ;
et si t=0.1, value := "0.1", une decimale.

Une Number du form integer/100 n'est point la meme chose qu'une String
/^d+.dd$/ .

"METIS" a écrit dans le message de news:
4371ca9f$0$21298$

Dans mon petit calculateur (merci O.L., ASM), je souhaite que le résultat
zape les décimale au delà de 2, ou même arrondisse à 2 !!!
Il peut le faire ?
Ils peuvent le faire !!




Lisez le FAQ du news:comp.lang.javascript, Sec 4.6; et puis <URL:http://
www.merlyn.demon.co.uk/js-round.htm> - StrU etc.


--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.


Avatar
METIS
Dr John Stockton wrote:
JRS: In article <43722660$0$19261$, dated
Wed,
9 Nov 2005 11:39:59, seen in news:fr.comp.lang.javascript, Patrice
Becht posted :

Pour arrondir ton resultat à deux décimale, faut ruser. Pour ça,
utilise : document.form.total.value=Math.round(t*100)/100;


Mais si t=0.0, value := "0" : nul decimale ;
et si t=0.1, value := "0.1", une decimale.

Une Number du form integer/100 n'est point la meme chose qu'une
String /^d+.dd$/ .


==> Excuse moi, mais je ne te suis pas.
La question étant de limiter l'affichage à 2 décimales, en arrondi de
préférence, je ne vois pas où est le problème ?
Faut dire que je ne suis pas non plus une flèche en maths !

--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...


Avatar
newdb
METIS wrote:
Dr John Stockton wrote:
Mais si t=0.0, value := "0" : nul decimale ;
et si t=0.1, value := "0.1", une decimale.
Une Number du form integer/100 n'est point la meme chose qu'une
String /^d+.dd$/ .
==> Excuse moi, mais je ne te suis pas.



ce que John (expert en la matière, voir
<http://www.merlyn.demon.co.uk/>) veut dire c'est que tu n'es pas
garanti d'avoir un résultat de la forme xxx.xx

si tu as en entrée t = un entier, tu n'auras pas en résultat cet entier
virgule 00 (t = 0 => résultat = 0);
de même avec t = nombre à 1 décimale, tu ne retrouveras pas ce nombre
virgule cette décimale 0 (t = 1.5 => résultat = 1.5).

si tu tiens à toujours avoir 2 décimales affichées (du style xxx.00 ou
xxx.30) il te faut formater ton résultat en le traitant comme une chaine
de caractères (string) répondant à /^d+.dd$/
c'est à dire :
^d+ => commence par une quantité indéfinie de chiffres (au moins 1)
. => puis est suivie un point
dd$ => puis se termine par une quantité de 2 chiffres (absolument)

voualoù.

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="


Avatar
METIS
denisb wrote:

si tu tiens à toujours avoir 2 décimales affichées (du style xxx.00
ou
xxx.30) il te faut formater ton résultat en le traitant comme une
chaine de caractères (string) répondant à /^d+.dd$/
c'est à dire :
^d+ => commence par une quantité indéfinie de chiffres (au moins
1)
. => puis est suivie un point
dd$ => puis se termine par une quantité de 2 chiffres
(absolument)


==> OK, ok !!!
J'ai tout compris.
Mais comme je ne suis pas plus fort en math qu'en code, je ne suis pas
capable d'appliquer cette explication fort interessante.

Donc dans mon calculateur, il faut mettre quoi ?
(code ci-dessous)

function devis() {
q=+document.form.quantite.value;
l=+document.form.largeur.value;
h=+document.form.hauteur.value;
s=+document.form.support.value;
m=+document.form.montage.value;
f=+document.form.finition.value;
e=+document.form.expedition.value;
p=+document.form.penc.value;
t=(q*l*h*(s+m+f))+(e)+(p);
document.form.total.value=t
}


--
<|[;o)) METIS
http://www.graphM.com
Remplacer wawamoo par ce qu'il faut...

Avatar
Bul
si tu tiens à toujours avoir 2 décimales affichées (du style xxx.00 )
c'est ce que fait toFixed. @+




Avatar
newdb
METIS wrote:
Donc dans mon calculateur, il faut mettre quoi ?


je pars du principe que :
* t est un nombre OBLIGATOIREMENT positif
* t est inférieur à 1 000 000 000 000 000 000 000
* L'AFFICHAGE de t présentera 2 décimales
!! il n'y a donc PAS de test de conformité de ces hypothèses !!


function devis() {
q = +document.form.quantite.value;
l = +document.form.largeur.value;
h = +document.form.hauteur.value;
s = +document.form.support.value;
m = +document.form.montage.value;
f = +document.form.finition.value;
e = +document.form.expedition.value;
p = +document.form.penc.value;

// c'est avec ce t que tu devras effectuer tous tes calculs
// futurs s'il y en a, car c'est un nombre.
t = (q * l * h * (s + m + f)) + e + p;

// pour l'affichage tu formates ce nombre en
// chaine de caractères pour un affichage plus joli.

// tu commences par multiplier ce nombre par 100 pour
// décaler l'éventuelle virgule de 2 rangs versla droite,
// puis tu transformes ce résultat en chaine de caractères.
var m = Math.round(t * 100).toString();

// au cas où m fasse moins de 3 caractères,
// donc les cas ou t est inférieur à 1 (0.15 par exemple
// et donc que m = "15"), tu dois rajouter devant
// un 0 en caractère supplémentaire (pour que m = "015").
while (m.length <= 2) {
m = "0" + m;
}

// tu extraies de cette chaine de caractères tous ceux de gauche
// en t'arrêtant just avant les 2 derniers,
// tu ajoutes un point (tu peux mettre une virgule si tu veux
// présenter ton affichage au format français),
// puis tu ajoutes les 2 derniers caractères (décimales voulues).
t_aff = m.substring(0, m.length - 2) + "." + m.substring(m.length -
2);

// tu affectes cette chaine de caractères à l'élément 'total'.
document.form.total.value = t_aff
}

la version originale de cette bidouille est ici (chez John) :
<http://www.merlyn.demon.co.uk/js-round.htm#toFixxed>

PS : pour répondre à Bul, toFixed peut poser des problèmes :
voir (chez John) <http://www.merlyn.demon.co.uk/js-round.htm#toF>

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="

1 2