首页 > 解决方案 > Javascript 错误地计算大整数

问题描述

我正在制作一个关于公式 10^(a-1)-1 mod a = 0 的程序。但是,当使用 Javascript 时,它不适用于 23 以上的数字。示例:

var b = 29
var a = Math.pow(10, b-1)

console.log(a);
console.log(a/b);
console.log(a % b)

这是输出:

1e+28
3.448275862068965e+26
14

模函数的输出应该是 1。有没有办法让它正确地解决计算?

标签: javascript

解决方案


您可以使用BigInt.

var b = 29n;
var a = 10n ** (b - 1n);
console.log(a.toString());
console.log((a/b).toString());
console.log((a % b).toString());


推荐阅读