J'ai des nombres flottants comme 3.2
et 1.6
.
J'ai besoin de séparer le nombre en partie entière et décimale. Par exemple, une valeur de 3.2
serait séparée en deux nombres, c'est-à-dire 3
et 0.2
Obtenir la partie entière est facile:
n = Math.floor(n);
Mais j'ai du mal à obtenir la partie décimale. J'ai essayé ceci:
remainder = n % 2; //obtient la partie décimale
Mais cela ne fonctionne pas toujours correctement.
Le code précédent a la sortie suivante:
n = 3.1 // donne remainder = 1.1
Qu'est-ce que je rate ici?
2 votes
Veuillez noter que
n = Math.floor(n)
ne renvoie votre résultat souhaité (la partie entière) que pour les nombres non négatifs0 votes
Utilisez
% 1
plutôt que% 2
4 votes
decimalPart = number - Math.floor(number)
de plus, vous pouvez y ajouter de la précision.parseFloat(decimalPart.toPrecision(3))
// point flottant avec une précision jusqu'à 3 chiffres