如何获取小数点2或2的大幂 如何将大指数值转换为十进制值。
我希望2的小数位数不是128的幂 直到现在我所做的
tofixed(+exponent)
这又给了我相同的价值。
var num = Math.pow(2, 128);
实际结果= 3.402823669209385e + 38 期望一些十进制值而不是指数值。
答案 0 :(得分:3)
如果已实现,则可以使用BigInt
。
var num = BigInt(2) ** BigInt(128);
console.log(num.toString());
console.log(BigInt(2 ** 128).toString());
答案 1 :(得分:2)
3.402823669209385e+38
是一个十进制数字(采用字符串形式,因为它已作为字符串输出)。采用科学表示法,尤其是E-notation。是3.402823669209385
乘以100000000000000000000000000000000000000
的数字。
如果您要使用科学表示形式的字符串,则可以使用Intl.NumberFormat
:
console.log(new Intl.NumberFormat().format(Math.pow(2, 128)));
注意:尽管该数字很好超出了JavaScript的数字类型通常可以精确表示的范围(Number.MAX_SAFE_INTEGER
以上的任何整数[9,007,199,254,740,991是四舍五入的结果),它是 精确地保持的值之一,即使在这样的幅度下也是如此,因为它是2的幂。但是对其进行的运算将没有一个真正的数学结果,几乎可以肯定的是2的幂会被舍入。
答案 2 :(得分:-2)
我认为默认的幂函数将无法获得您想要的结果。 您可以参考下面的文章,以了解如何自己创建具有大数的Power函数。
演示代码不是JS,但仍然可以理解。
↓