En JavaScript, lors de la conversion d'un flottant en chaîne de caractères, comment puis-je obtenir seulement 2 chiffres après la virgule ? Par exemple, 0,34 au lieu de 0,3445434.
Réponse
Trop de publicités?
Rodrigo
Points
328
Peut-être voudrez-vous aussi un séparateur décimal ? Voici une fonction que je viens de créer :
function formatFloat(num,casasDec,sepDecimal,sepMilhar) {
if (num < 0)
{
num = -num;
sinal = -1;
} else
sinal = 1;
var resposta = "";
var part = "";
if (num != Math.floor(num)) // decimal values present
{
part = Math.round((num-Math.floor(num))*Math.pow(10,casasDec)).toString(); // transforms decimal part into integer (rounded)
while (part.length < casasDec)
part = '0'+part;
if (casasDec > 0)
{
resposta = sepDecimal+part;
num = Math.floor(num);
} else
num = Math.round(num);
} // end of decimal part
while (num > 0) // integer part
{
part = (num - Math.floor(num/1000)*1000).toString(); // part = three less significant digits
num = Math.floor(num/1000);
if (num > 0)
while (part.length < 3) // 123.023.123 if sepMilhar = '.'
part = '0'+part; // 023
resposta = part+resposta;
if (num > 0)
resposta = sepMilhar+resposta;
}
if (sinal < 0)
resposta = '-'+resposta;
return resposta;
}
- Réponses précédentes
- Plus de réponses
21 votes
Juste un petit détail : voulez-vous "couper" tout sauf les deux premiers chiffres, ou voulez-vous arrondir à deux chiffres ?