web-dev-qa-db-fra.com

Comment convertir une chaîne contenant une notation scientifique pour corriger le format de nombre Javascript

J'ai une chaîne, par exemple: "4.874915326E7". Quelle est la meilleure façon de le convertir au format numérique javascript? (int ou float)? si j'essaye parseInt (), le E à la fin est ignoré.

40
Olga

Éditer:

Cette réponse semble générer une certaine confusion. La question initiale demandait comment convertir la notation scientifique sous la forme d'une chaîne en un nombre (afin qu'il puisse être utilisé pour le calcul). Cependant, un nombre important de personnes trouvant cette réponse semblent penser qu'il s'agit de convertir un nombre représenté par javascript en notation scientifique dans un format plus présentable. Si c'est en fait votre objectif (présentation), vous devriez plutôt convertir le nombre en chaîne. Notez que cela signifie que vous ne pourrez pas l'utiliser aussi facilement dans les calculs.

Réponse originale:

Passez-le sous forme de chaîne à la fonction Number.

Number("4.874915326E7") // returns 48749153.26
Number("4E27") // returns 4e+27

Conversion d'un nombre dans la notation scientifique en une chaîne:

Ceci est mieux répondu par ne autre question , mais à partir de cette question, j'aime personnellement la solution qui utilise .toLocaleString() . Notez que cette solution particulière ne fonctionne pas pour les nombres négatifs. Pour votre commodité, voici un exemple:

(4e+27).toLocaleString('fullwide', {useGrouping:false}) // returns "4000000000000000000000000000"
60
Joseph Marikle

Essayez quelque chose comme ça

Démo

Number("4.874915326E7").toPrecision()
10
Pranay Rana

Vous pouvez aussi utiliser + signez devant votre chaîne pour obtenir un nombre.

+"4.874915326E7" // == 48749153.26
7
Yaroslav Melnichuk