Alasan: JS menangani penambahan, pengurangan, perkalian dan pembagian desimal menurut 2. Atas dasar ARG1, keakuratan ARG2 diperluas atau diperluas secara terbalik, sehingga situasi berikut akan terjadi.
Masalah penambahan, pengurangan, perkalian dan pembagian titik desimal dalam JavaScript (JS) adalah bug di JS seperti 0,3*1 = 0,29999999999, dll. Daftar empat algoritma JS berikut yang dapat menghitung akurasi yang sesuai dengan sempurna.
fungsi accdiv (arg1, arg2) {var t1 = 0, t2 = 0, r1, r2; coba {t1 = arg1.toString (). split (".") [1] .length} catch (e) {} coba {t2 = arg2.tostring (). split (".") [1] .length} catch (e) {} dengan (matematika) {r1 = angka (arg1.toString (e) {} dengan (matematika) {r1 = angka (arg1.toString (e) {} dengan (matematika) {r1 = bilangan (arg1.toString (). " r2 = angka (arg2.toString (). ganti (".", ")) return accmul ((r1/r2), pow (10, t2-t1)); }} / * Mengapa bertanya tentang hovertree.com * /// beberapa fungsi accmul (arg1, arg2) {var m = 0, s1 = arg1.toString (), s2 = arg2.toString (); Coba {m+= s1.split (".") [1] .length} catch (e) {} coba {m+= s2.split (".") [1] .length} catch (e) {}}} {}} {} {} {} {} {} {} {} {s1 (. accadd (arg1, arg2) {var r1, r2, m; coba {r1 = arg1.toString (). split (".") [1] .length} catch (e) {r1 = 0} coba {r2 = arg2.tostring (). split (".") [1] .length} catch (e) {r2 = 0} m = math.pow (10, math.mex (e) {r2 = 0} m = math.pow (10, math.mex } // Fungsi Subtraksi Subtr (arg1, arg2) {var r1, r2, m, n; coba {r1 = arg1.toString (). split (".") [1] .length} catch (e) {r1 = 0} coba {r2 = arg2.toString (). split (".") [1] .length} catch (e) {r2 = 0} m = math.pow (10, math.max n = (r1> = r2)? r1: r2; return ((arg1*m-arg2*m)/m) .tofixed (n); }Solusi sempurna untuk kehilangan akurasi desimal JavaScript di atas adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.