javascript如何将多位指数表示为小数点后两位

问题描述 投票:0回答:2

我有一个 javascript 程序,它在控制台中吐出大量形式为“3.173538947635389377E+98”的数字,并且为了便于比较而尝试将它们减少为“3.17E+98”之类的东西但没有运气。

我将数字字符串化,计算周期和 E 位置,切割和切块,直到我得到字符串形式 '317.35E+96',其中 96 是 3 的倍数。 然后,当我使用 Number() 重新表示为数字时,它恢复为“3.173538947635389377E+98”。 我本可以将它保留为字符串,但稍后必须重新转换为数字。 有降低复杂性的简单方法吗?当字符串太长时,几乎不可能检查和看到类似的数字等。我想 js 人有他们的理由,但我无能为力。

javascript decimal exponential
2个回答
1
投票

您可以使用

Intl.NumberFormat
engineering
符号:

const display = (n) => new Intl.NumberFormat('en', {
  notation: 'engineering',
  maximumFractionDigits: 2
}).format(n);

console.log(display(3.173538947635389377E+98));


0
投票

您可以使用

toFixed()
方法将多位指数表示到小数点后两位。

例如,

<!DOCTYPE html>
<html>
<body>


<p id="demo"></p>

<script>
var num = 3.14159265358979323846264338327950;

var result = num.toFixed(2);

document.getElementById("demo").innerHTML = result;
</script>

</body>
</html>

// 结果将是 3.14

© www.soinside.com 2019 - 2024. All rights reserved.