OVH Cloud OVH Cloud

formatage nombre 2 568,75 en 2568.75

26 réponses
Avatar
Julie David
bonjour tt le monde

j'ai un champ qui contient un nombre.
ce nombre a été formaté en vbscript par formatnumber(nombre, 2)

comme séparer l'espace pour que nombre soit reconnu en javascript

exemple

mon champs contient le nombre suivant : 2 568,75 que je veux convertir en
2568.75 pour qu'il soit exploitable en javascript

que faire?

j'ai essayé :

mynombre = document.myform.nombre.value

temp = parseInt(mynombre)

mais j'ai tjs une erreur

j'ai essayé aussi replace mais rien ne fonctionne que faire?



Merci

julie

10 réponses

1 2 3
Avatar
Christophe PEREZ
Le Thu, 06 Oct 2005 20:03:14 +0200, YD a écrit:

Tout à fait, le + est un fichu opérateur en javascript :
- unaire : il transforme son argument en nombre (ou NaN si c'est impossible)
- binaire : il effectue l'addition si ses deux arguments sont numériques
ou la concaténation si une des valeurs est une chaîne.


Merci ;-)

C'est le but du newsgroup, partager ses connaissances !


Certes, mais tout le monde n'a pas nécessairement cet état d'esprit, et
surtout tes connaissances :-)

J'ai beaucoup appris
ainsi, particulièrement en suivant de temps à autre comp.lang.javascript (en
anglais). Le ng n'est pas un service d'écriture de script à la demande,
d'ailleurs j'évite soigneusement de répondre quand je flaire cette attente,
d'autant qu'on a rarement un remerciement dans ce cas ou, s'il y en a un, c'est
souvent qu'il précède une demande d'adaptation à ce besoin-ci et ce besoin-là...


Bien vu !

Ceci étant, je ne vais bientôt plus avoir grand chose à vous apprendre, assidus
comme vous êtes ;-)


Ouh là ! On ne doit pas avoir la même définition du "bientôt".
Faut dire que personnellement, le JS, c'est par période que je pratique.
Je peux ne plus y toucher pendant 3 ou 6 mois, et là, ma mémoire
défaille souvent ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
ASM
Le Thu, 06 Oct 2005 09:15:38 +0200, O.L a écrit:

Tiens, je ne connaissais pas ... C'est le + de devant qui transforme la
chaine en nombre ?


Je me suis fait exactement la même réflexion.


<form name="monform">
<input type=text name="nombre">
</form>


truc = document.forms['monForm'].elements['nombre'].value;

truc sera au format texte (string)

pour l'avoir au format nombre :

truc = Number(truc);
ou
truc = truc*1;
ou
truc = +truc;
ou (si besoin)
truc = -truc;

machin = 10 + -truc;
machin = 10 - truc*1;
machin = -truc + 10;
machin = 10 - Number(truc);

à vot' guise vous choisez :-)

notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Julie David
Merci pour la solution elle fonctionne bien

Julie D
Avatar
Olivier Miakinen

truc sera au format texte (string)

pour l'avoir au format nombre :

truc = Number(truc);
ou
truc = truc*1;
ou
truc = +truc;
ou (si besoin)
truc = -truc;

machin = 10 + -truc;


Est-ce que « machin = 10 - truc; » ne suffit pas ?

Personnellement, ne sachant pas que « +truc » suffisait à transformer
une chaîne en nombre, j'utilisais « 0 + truc ».

notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro


Oui, mais en hexadécimal : c'est beaucoup plus drôle.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
ASM

Est-ce que « machin = 10 - truc; » ne suffit pas ?


Ha ! je vois qu'on suit.

théoriquement non car par essence (cf + haut)
la valeur d'un champ (nota : input=text) est une chaîne ou string
cependant, comme il n'est pas prévu d'oter à une chaine
une autre chaine par ce moyen il semblerait que le '-'
garde sa valeur normale et ne s'applique qu'à des nombres
(tendant par ce fait de transformer ce qu'on lui propose en nombre)

En tous cas pour le + la théorie devrait s'appliquer à tous coups
en effet,
puisqu'on ajoute une chaîne, le résultat devra être une chaine

demo :

<html><from>
entrez un nombre ou une chaine de carateres ici :
<input type=text name=entree>
<p>resultat addition apres :
<input type=text name­dnext>
resultat addition avant :
<input type=text name­dprev>
<p>resultat soustraction apres :
<input type=text name=minnext>
resultat soustraction avant :
<input type=text name=minprev>
<input type=button value=Aller
onclick="
addnext.value = 10 + entree.value;
addprev.value = entree.value + 10;
minnext.value = 10 - entree.value;
minprev.value = -entree.value + 10;
">
</form></html>

notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro



Oui, mais en hexadécimal : c'est beaucoup plus drôle.


Elève Miakinen passez au tableau montrer çà à vos camarades

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
O.L.
Personnellement, ne sachant pas que « +truc » suffisait à transformer
une chaîne en nombre, j'utilisais « 0 + truc ».


Et ça ne te faisait pas une concaténation, justement ?
Chez moi JS est si peu malin que quand je lui demande :
alert(0+"1234");
Il me répond : "01234" ...

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

Avatar
Olivier Miakinen

Personnellement, ne sachant pas que « +truc » suffisait à transformer
une chaîne en nombre, j'utilisais « 0 + truc ».


Et ça ne te faisait pas une concaténation, justement ?


Maintenant que tu le dis (et ASM aussi)... en effet ça n'avait pas
fonctionné et j'avais remplacé 0+chaine par Number(chaine). À l'occasion
je remplacerai ça par +chaine.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.


Avatar
ASM

Chez moi JS est si peu malin que quand je lui demande :
alert(0+"1234");
Il me répond : "01234" ...


il te réponds exactement ce que tu lui as demandé
ajouter la chaine '01234' à 0
'0' considéré comme un caractère de par le fait

essayer avec : +'12345' + 0;
ou : 0 + +'12345'; // à tous z'azars

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Olivier Miakinen

notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro



Oui, mais en hexadécimal : c'est beaucoup plus drôle.


Elève Miakinen passez au tableau montrer çà à vos camarades


Dans ma page sur les charsets, j'avais besoin d'afficher des nombres
hexa sur 2 chiffres (la position d'un caractère dans la table) et sur
4 chiffres (le code Unicode). Du coup, j'ai écrit ceci :

--------------------------------------------------------------

Number.prototype.toHex1 = function()
{
return "0123456789ABCDEF".charAt(this & 0xF);
}
Number.prototype.toHex2 = function()
{
return (this>>4).toHex1() + this.toHex1();
}
Number.prototype.toHex4 = function()
{
return (this>>8).toHex2() + this.toHex2();
}

...
charIdx.toHex2();
...
"U+" + udec.toHex4();
...

--------------------------------------------------------------

Mais habituellement on cherche plutôt à afficher les nombres quelle que
soit leur longueur en commençant par le premier chiffre non nul. Du
coup, un truc comme ça devrait fonctionner pour les nombres positifs
(non testé, et à étendre aux entiers négatifs, voire aux flottants) :

--------------------------------------------------------------

Number.prototype.toHexa = function()
{
var nombre = this;
var hexa = "";

/* le test est à la fin pour traiter le cas this=0 */
do {
hexa = "0123456789ABCDEF".charAt(nombre & 0xF) + hexa;
nombre >>= 4;
} while (nombre > 0);

return hexa;
}

chaine_hexa = nombre.toHexa();

--------------------------------------------------------------


--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.



Avatar
Olivier Miakinen
Le 07/10/2005 20:14, je répondais à ASM :

notez dans vos carnets :
passer un number en string sera le sujet de la prochaine interro





Pour ceux qui ne sauraient pas, je donne quand même la réponse :
number.toString();

Oui, mais en hexadécimal : c'est beaucoup plus drôle.


Elève Miakinen passez au tableau montrer çà à vos camarades


[...] à étendre aux entiers négatifs, voire aux flottants


C'est fait :
http://www.miakinen.net/tmp/toHexa.html
(sans oublier Infinity, -Infinity et NaN)

;-)




1 2 3