Javascript คำนวณจำนวนเต็มขนาดใหญ่ไม่ถูกต้อง [ซ้ำกัน]
Aug 20 2020
ฉันกำลังสร้างโปรแกรมเกี่ยวกับสูตร 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 มีวิธีใดบ้างที่จะทำให้การคำนวณถูกต้อง
คำตอบ
1 iota Aug 20 2020 at 13:01
คุณสามารถใช้BigInt
.
var b = 29n;
var a = 10n ** (b - 1n);
console.log(a.toString());
console.log((a/b).toString());
console.log((a % b).toString());