Ini adalah hal yang sangat aneh, yang diuji hari ini. Parseint (1.13*100), nilai pengembalian aktual adalah 112. Lihat saja kode
Salinan kode adalah sebagai berikut:
<head>
<type skrip = "Teks/JavaScript">
function test () {
var nilai ini = 0;
ini nilai = yuantofen ($ ("#inp"). val ());
waspada (nilai ini);
}
/* Yuan ke titik*/
fungsi yuantofen (yuan) {
return parseint (yuan*100,10); // Solusi: Ubah pengembalian di sini menjadi: Parseint (yuan*1000,10)/10;
}
</script>
</head>
<body>
<div>
<input type = "text" id = "inp" name = "pl" value = "1.14"/> <!-Bug ini hanya akan muncul ketika nilai input adalah: 1.13, 1.14, 1.15, 1.16, dan tidak ada bug yang ditemukan di data lain->
<input type = "tombol" name = "ok" value = "confirm" onclick = "test ();"/>
</div>
</body>
</html>
Saat menjalankan kode di atas, Anda akan menemukan bahwa ketika Anda memasukkan nomor dari 1,13 ke 1,16, misalnya, 1.13 dimasukkan, tetapi nilai peringatan adalah 1.12. Demikian pula, jika inputnya 1,16, peringatan akan menghasilkan 1.15.
Namun, ini tidak akan terjadi saat memasukkan 2.13, 3.13, dan 0.13.
Bug ini sangat penting bagi bisnis yang melakukan akuntansi terbanyak.
Misalnya: Jika Anda ingin mengirimkan uang kepada seseorang, unit pengiriman uang adalah (miliar yuan), dan Anda mengirimkan 113 juta yuan, tetapi pada akhirnya itu sebenarnya menjadi 112 juta yuan. Ha ha. Hanya lelucon. Namun, prosedurnya ketat. Tidak peduli apakah itu satu sen atau satu sen, itu milik siapa pun yang menjadi milik siapa, dan Anda tidak boleh ceroboh.