web-dev-qa-db-fra.com

Comment convertir un entier en float en JavaScript?

J'ai un entier (par exemple 12 ), et je veux le convertir en un nombre à virgule flottante , avec un nombre spécifié de décimales.

Brouillon

function intToFloat(num, decimal) { [code goes here] }
intToFloat(12, 1) // returns 12.0
intToFloat(12, 2) // returns 12.00
// and so on…
18
nyuszika7h

Ce que vous avez déjà est un nombre à virgule flottante, ce sont tous des nombres à virgule flottante 64 bits en JavaScript. 

Pour obtenir des décimales lors du rendu (sous forme de chaîne, pour la sortie), utilisez .toFixed() , comme ceci:

function intToFloat(num, decPlaces) { return num.toFixed(decPlaces); }

Vous pouvez le tester ici (bien que je renommerais la fonction, étant donné que ce n'est pas une description précise).

33
Nick Craver

toFixed (x) n'est pas une solution croisée pour les navigateurs. La solution complète suit: 

function intToFloat(num, decPlaces) { return num + '.' + Array(decPlaces + 1).join('0'); }
3
simonbor

Si vous n’avez pas besoin (ou n’en êtes pas sûr) d'un nombre fixe de décimales, vous pouvez simplement utiliser

xAsString = (Number.isInteger(x)) ? (x + ".0") : (x.toString());

Ceci est pertinent dans les contextes tels que, vous avez une x en tant que 7.0 mais x.toString() vous donnera "7" et vous avez besoin de la chaîne en tant que "7.0". Si le x est une valeur flottante telle que par exemple 7.1 ou 7.233, la chaîne doit également être "7.1" ou "7.233" respectivement. 

Sans utiliser Number.isInteger ():

xAsString = (x % 1 === 0) ? (x + ".0") : (x.toString());
0
Sachin Murali G