Mencegah Notasi Saintifik dalam JavaScript untuk Nombor Besar
JavaScript terkenal menukar integer melebihi 21 digit kepada notasi saintifik apabila ia dibenamkan dalam rentetan. Ini boleh menjadi masalah apabila mencetak nilai ini sebagai sebahagian daripada URL atau konteks lain. Bagaimanakah kami boleh mengetepikan penukaran ini dan mengekalkan nilai asal?
Gulirkan Penyelesaian Anda Sendiri:
Walaupun JavaScript tidak mempunyai kaedah terbina dalam yang direka khusus untuk tujuan ini, kami boleh mencipta fungsi kita sendiri untuk mengendalikannya. Berikut ialah pelaksanaan tersuai:
function toFixed(x) { if (Math.abs(x) < 1.0) { var e = parseInt(x.toString().split('e-')[1]); if (e) { x *= Math.pow(10,e-1); x = '0.' + (new Array(e)).join('0') + x.toString().substring(2); } } else { var e = parseInt(x.toString().split('+')[1]); if (e > 20) { e -= 20; x /= Math.pow(10,e); x += (new Array(e+1)).join('0'); } } return x; }
Menggunakan BigInt:
Versi moden JavaScript menyokong BigInt, jenis asli untuk mewakili integer besar. Menggunakan BigInt menyediakan cara mudah untuk menukar nombor kepada rentetan tanpa notasi saintifik:
let n = 13523563246234613317632n; console.log(n.toString()); // Output: "13523563246234613317632"
Nota: BigInt masih dalam pembangunan dan mungkin tidak disokong secara universal. Pertimbangkan untuk menggunakan pustaka BigInt JavaScript jika anda memerlukan keserasian dengan penyemak imbas lama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang JavaScript daripada Menukar Nombor Besar kepada Notasi Saintifik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!