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…
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).
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'); }
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());