OVH Cloud OVH Cloud

calcul avec point ou virgule

8 réponses
Avatar
METIS
Bonjour,
question de béotien :
Peut-on faire faire des calculs sur des nombres saisis indifféremment
avec . (point) ou , (virgule).
Dans mon petit calculateur, il n'y a que le point qui marche.
Si je mets des virgules, ça répond NaN.
Faut bien avouer que j'y connais pas grand chose !(;o))))

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

8 réponses

Avatar
ASM
Bonjour,
question de béotien :
Peut-on faire faire des calculs sur des nombres saisis indifféremment
avec . (point) ou , (virgule).


on laisse taper à la Mac ou à la Windows
et on prévoit un remplacement de la virgule par un point
(si pas de virgule ce n'est pas grâve çà ne cause pas d'erreur)


truc.value = truc.value.replace(',','.);

ou directement dans l'input

<input type="text" onchange="this.value=this.value.replace(',','.');" />

function calc() {
with(document.monForm) {
total = +nbre1.value.replace(',','.') + nbre2.value.replace(',','.')
}
}

<form name="monForm">
<input type=text name="nbre1" />
+ <input type=text name="nbre2" />
= <input type=text name="total" />
<input type=button value="calculer" onclick="calc();" />
</form>



VARIANTE :
=========
function calc(nombre) {
return nombre.value.replace(',','.')*1;
}

<form name="monForm">
<input type=text name="nbre1"
onchange="total.valueÊlc(nbre1)+calc(nbre2); />
+ <input type=text name="nbre2"
onchange="total.valueÊlc(nbre1)+calc(nbre2); />
= <input type=text name="total" />
</form>

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
O.L.
ASM vient de nous annoncer :
Bonjour,
question de béotien :
Peut-on faire faire des calculs sur des nombres saisis indifféremment avec
. (point) ou , (virgule).


on laisse taper à la Mac ou à la Windows
et on prévoit un remplacement de la virgule par un point


Une remarque en passant : je ne vois pas trop le rapport entre
Mac/Windows et virgule/point ... Pour moi, le point est le séparateur
décimal utilisé par les américains (et les anglais ?), alors que la
virgule est utilisée en France.
Non ?

D'ailleurs, le logiciel Excel sous Windows utilise la virgule quand il
est en France, et le point quand c'est la version US.

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
ASM
Une remarque en passant : je ne vois pas trop le rapport entre
Mac/Windows et virgule/point ... Pour moi, le point est le séparateur
décimal utilisé par les américains (et les anglais ?), alors que la
virgule est utilisée en France.
Non ?

D'ailleurs, le logiciel Excel sous Windows utilise la virgule quand il
est en France, et le point quand c'est la version US.


Oui, mais là tu n'es pas sur Excel mais sur FF ou IE ou autre navigateur
quand tu remplis un formulaire via Internet.
Par défaut (si je me souviens de mon Win95) dans ces softs,
sur Windows la virgule du pavé numérique est un point
tandis que sur Mac c'est une virgule.

Touj sur Mac, si tu es attentif(*), tu auras passé en Français numérique
ou bloqué la majuscule (pas pratique pour remplir les chps textes en minus)

(*) on est rarement attentif :-(

Maintenant, il est possible, que Windows à force de copier le Mac,
finisse par vaguement y ressembler :-)


M'enfin ... le principal est que l'internaute puisse mettre une , ou un .

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM

correctif

VARIANTE :
=========
<script type="text/javascript">

function calc(nombre) {
return nombre.value.replace(',','.')*1;
}
</script>
<form>
<input type="text" name="nbre1"
onchange="total.valueÊlc(nbre1)+calc(nbre2);" />
+ <input type="text" name="nbre2"
onchange="total.valueÊlc(nbre1)+calc(nbre2);" />
= <input type="text" name="total" />
</form>


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Olivier Miakinen
Le 05/11/2005 18:37, ASM répondait à O.L. :

Une remarque en passant : je ne vois pas trop le rapport entre
Mac/Windows et virgule/point ... Pour moi, le point est le séparateur
décimal utilisé par les américains (et les anglais ?), alors que la
virgule est utilisée en France.
Non ?



Oui.

D'ailleurs, le logiciel Excel sous Windows utilise la virgule quand il
est en France, et le point quand c'est la version US.


Oui, mais là tu n'es pas sur Excel mais sur FF ou IE ou autre navigateur
quand tu remplis un formulaire via Internet.


Le cas d'Excel était juste un exemple, à mon humble avis. Toutes les
applications qui sont localisées pour une langue particulière ne se
contentent pas de traduire les messages, mais aussi le format des
heures, celui des dates, celui des monnaies, et ainsi de suite, y
compris le format des nombres. Olivier signalait que le logiciel Excel
sur Windows était correctement localisé de ce point de vue-là, alors
que tu sembles dire que ce n'est pas le cas des applications sur Mac.

Par défaut (si je me souviens de mon Win95) dans ces softs,
sur Windows la virgule du pavé numérique est un point
tandis que sur Mac c'est une virgule.


Tiens, non, tu sembles ici dire le contraire, c'est-à-dire que la
localisation en français sur Mac va jusqu'à modifier le fonctionnement
d'une touche du clavier.


Bon, je reviens au sujet qui nous intéresse dans ce groupe. La langage
JavaScript, étant un langage de programmation et pas une application, ne
définit qu'un seul caractère pour le « point décimal » (et donc pas de
« virgule décimale »). Ceci étant précisé, ta réponse à METIS est
tout-à-fait adaptée (avec x.replace(',', '.')) sauf qu'il fallait
remplacer « à la Mac ou à la Windows » par « à la française ».

--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)


Avatar
METIS
ASM wrote:
Bonjour,
question de béotien :
Peut-on faire faire des calculs sur des nombres saisis
indifféremment
avec . (point) ou , (virgule).


on laisse taper à la Mac ou à la Windows
et on prévoit un remplacement de la virgule par un point
(si pas de virgule ce n'est pas grâve çà ne cause pas d'erreur)


truc.value = truc.value.replace(',','.);

ou directement dans l'input

<input type="text"
onchange="this.value=this.value.replace(',','.');"
/>


==> Bon, j'ai lu tout le monde, mais comme je suis toujours aussi nul
en code que la semaine dernière (;o)))), je ne pige pas grand chose.

Donc, j'ai ça :

<SCRIPT LANGUAGE="JavaScript" type="text/JavaScript">
<!--
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
}
</SCRIPT>
.../...
<form method="post" action="envoi_email.php" name="form"
onSubmit="MM_validateForm('nom','','R');return
document.MM_returnValue">
.../...
<input name="quantite" type="text" id="quantite">

Mais aussi des champs qui reçoivent du texte, des emails, des
listes...
Je pense que le fichier envoi_email.php n'est pas utilise ici.

Où je mets ça...
Désolé, j'espère que vous êtes patients !(;o))))))

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


Avatar
ASM

==> Bon, j'ai lu tout le monde, mais comme je suis toujours aussi nul
en code que la semaine dernière (;o)))), je ne pige pas grand chose.

Donc, j'ai ça :


je laisse la totale
le plus pour , et . tout à la fin

<SCRIPT LANGUAGE="JavaScript" type="text/JavaScript">
<!--
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
}
</SCRIPT>
.../...
<form method="post" action="envoi_email.php" name="form"
onSubmit="MM_validateForm('nom','','R');return
document.MM_returnValue">
.../...
<input name="quantite" type="text" id="quantite"
onchange="this.value=this.value.replace(',','.');">


<input name="prix_u" type="text" id="prix_u"
onchange="this.value=this.value.replace(',','.');">

etc pour tous les champs où des nombres sont à rentrer

Mais aussi des champs qui reçoivent du texte, des emails, des
listes...
Je pense que le fichier envoi_email.php n'est pas utilise ici.


on s'en moque pour l'histoire du séparateur

Où je mets ça...


ben regarde + haut

Désolé, j'espère que vous êtes patients !(;o))))))




--
Stephane Moriaux et son [moins] vieux Mac

Avatar
METIS
ASM wrote:
<input name="quantite" type="text" id="quantite"
onchange="this.value=this.value.replace(',','.');">



==> Super, simple, super-simple !!!

en fait que je tape "." ou "," ça écrit "."
Bon, c'est bien.

Les variantes, c'était juste pour me faire fliper, hein!!(;o))))))))

Merci, MERCI !!!

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