Javascript salah menghitung bilangan bulat besar [duplikat]

Aug 20 2020

Saya membuat program tentang rumus 10 ^ (a-1) -1 mod a = 0. Namun, saat menggunakan Javascript, tidak berfungsi dengan angka di atas 23. Contoh:

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

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

Ini adalah keluarannya:

1e+28
3.448275862068965e+26
14

Output untuk fungsi modulo harus 1. Apakah ada cara untuk membuatnya menyelesaikan perhitungan dengan benar?

Jawaban

1 iota Aug 20 2020 at 13:01

Anda bisa menggunakan BigInt.

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