将大数转换为字符串而不使用科学计数法

5

例如:Number.MAX_VALUE.toString()"1.7976931348623157e+308"

我希望没有e+308,怎样实现呢?

1个回答

0
你可以这样做:
var n = Number.MAX_VALUE.toString();
var parts = n.split("e+");
var first = parts[0].replace('.', "");
var zeroes = parseInt(parts[1], 10) - (first.length - 1);
for(var i = 0; i < zeroes; i++){ first += "0"; }
// => first === "179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

2
注意:此解决方案存在错误,无法正确格式化所有字符串,例如“5.5”。 - Krzysztof Kaczor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接