Memahami Had Ketepatan Integer JavaScript
Dalam JavaScript, nilai berangka boleh diwakili menggunakan dua jenis data utama: Nombor dan BigInt. Jenis Nombor memegang nilai sebagai nombor titik terapung 64-bit, manakala BigInt ialah sambungan yang diperkenalkan untuk mengendalikan integer ketepatan arbitrari.
Had Nombor
Yang paling biasa jenis nombor terpakai, Nombor, mempunyai had atas Nombor.MAX_SAFE_INTEGER. Pemalar ini mewakili nilai kamiran tepat terbesar yang boleh diwakili tanpa kehilangan ketepatan. Ia mempunyai nilai 253-1 atau lebih kurang 9 kuadrilion.
Definisi dan Ketergantungan Bahasa
Had atas untuk jenis data Nombor ditakrifkan secara eksplisit oleh spesifikasi bahasa JavaScript dan konsisten merentas semua penyemak imbas. Had ini memastikan bahawa integer dalam julat ini boleh diwakili dengan tepat dan dibandingkan dengan betul.
Penggunaan dan Pertimbangan
Untuk integer yang lebih besar daripada Number.MAX_SAFE_INTEGER, JavaScript menyediakan data BigInt taip. Tidak seperti Nombor, BigInt boleh memuatkan integer dengan saiz sewenang-wenangnya tanpa masalah ketepatan. Walau bagaimanapun, operator bitwise dan shift dalam JavaScript beroperasi pada integer 32-bit, mengehadkan nilai selamat maksimumnya kepada kira-kira 2 bilion.
Contoh dan Perbandingan
Kod berikut menunjukkan had ketepatan:
const x = 9007199254740992; const y = -9007199254740992; console.log(x == x + 1); // True (Precision issues) console.log(y == y - 1); // True (Precision issues) // Arithmetic works, but bitwise/shift operations may drop precision console.log(x / 2); // 4503599627370496 (correct) console.log(x >> 1); // 0 (incorrect)
Seperti yang ditunjukkan dalam contoh, operasi aritmetik mengekalkan ketepatan untuk nilai dalam julat selamat. Walau bagaimanapun, operasi bitwise dan shift mungkin mengalami kehilangan ketepatan disebabkan pengendalian integer 32-bit yang terhad.
Atas ialah kandungan terperinci Apakah Had Ketepatan Integer JavaScript, dan Bagaimanakah Nombor dan BigInt Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!