Artikel ini menganalisis masalah ketepatan integer panjang JS dalam contoh. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Penerangan masalah:
Terdapat fungsi skrip di latar belakang, yang boleh menulis skrip untuk memanggil kod Java secara dinamik
Anugerah cas semula log lihat telah dihantar roleId=10214734953631044;
Nombor ID watak ini kurang 1, ini....
Analisis masalah:
Ia sepatutnya menjadi isu ketepatan JS,Ketepatan
Integer (tanpa titik perpuluhan atau tatatanda eksponen) boleh sehingga 15 digit.
Bilangan maksimum tempat perpuluhan ialah 17, tetapi aritmetik titik terapung tidak selalunya 100% tepat:
Ini bukan kesalahan JavaScript, dan bukan juga kesalahan Java Penukaran di atas kepada Long sememangnya roleId=10214734953631044;
Adakah itu mungkin?
Input kepada konsol javascript ialah semua rentetan, dan kemudian penukaran Integer.valueOf atau Long.valueOf dalam java dipanggil?
Tulis kaedah penukaran umum untuk menghantar ID aksara kepada JavaScriptEngine sebagai rentetan