Je travaille avec une autre base de code sur laquelle je n'ai aucun contrôle et que je ne peux pas voir. Je peux lui envoyer des entrées et il me retournera des sorties. Cette base de code ne spécifie pas non plus dans quoi elle est écrite, mais cela n'a pas d'importance puisque je n'ai besoin de lui transmettre que des nombres et qu'elle me renvoie ses numéros sortis. Je ne connais que les entrées et sorties attendues.JS-toFixed renvoie une chaîne, mais j'ai besoin d'un nombre à 6 chiffres
L'une des entrées que je dois travailler nécessite une entrée de 6 décimales. La plupart de mes nombres seront bien au-dessus de 6 décimales, donc je peux juste arrondir ou tronquer, mais dans le cas où il est arrondi à ou devient aléatoire un nombre comme 0.125
ou 0.5
, je ne suis pas en mesure d'entrer le bon nombre. Par exemple, si j'ai un nombre comme 0.5
, c'est un nombre valide et légitime, mais la fonction à laquelle je le saisis ne l'accepte pas et se trompe parce que ce n'est pas un nombre à exactement 6 décimales comme 0.500000
est. Je ne peux pas non plus entrer une chaîne de "0.500000"
, car elle va aussi errer car elle cherche un nombre, pas une chaîne.
Y at-il de toute façon en JavaScript natif une précision spécifique sur un nombre, même s'il y a des zéros morts supplémentaires à la fin?
Exemples:
(1/2).toFixed(6) === "0.500000" // the toFixed() function returns a *String*, not a *Number*.
(1/2).toFixed(6) /1 === 0.5 // dividing by 1 coerces it to a Number, but drops the decimals back off the end.
Number((1/2).toFixed(6)) === 0.5 // Trying to convert it into a Number using the Number Constructor does the same as the example above it.
* EDIT: Pour être clair, je besoin d'un numéro à 6 décimales, pas une chaîne.
Je ne comprends pas quel est le problème avec le premier exemple de code. – robertklep
Il n'y a pas un tel nombre dans JS. + vous n'en avez même pas besoin. Lors de l'affichage, utilisez la représentation de la chaîne, lors du calcul avec le nombre, utilisez simplement la précision native. – Teemu
Si vous voulez simplement afficher les chiffres, vous pouvez transformer le nombre en une chaîne et ajouter les zéros après la dernière décimale. – alexi2