เหตุผล: JS จัดการการเพิ่มการลบการคูณและการแบ่งทศนิยมตาม 2. บนพื้นฐานของ Arg1 ความแม่นยำของ Arg2 จะถูกขยายหรือขยายตัวแบบผกผันดังนั้นสถานการณ์ต่อไปนี้จะเกิดขึ้น
ปัญหาของการเพิ่มการลบการคูณและการแบ่งจุดทศนิยมใน JavaScript (JS) เป็นข้อผิดพลาดใน JS เช่น 0.3*1 = 0.299999999999 ฯลฯ รายการอัลกอริทึม JS สี่รายการต่อไปนี้
ฟังก์ชั่น accdiv (arg1, arg2) {var t1 = 0, t2 = 0, r1, r2; ลอง {t1 = arg1.toString (). แยก (".") [1] .length} catch (e) {} ลอง {t2 = arg2.toString (). แยก (".") [1] .length} catch (e) {} ด้วย (คณิตศาสตร์) {r1 = number (arg1.tostring r2 = number (arg2.toString (). แทนที่ (".", ")) return accmul ((r1/r2), pow (10, t2-t1)); }} / * ทำไมถามเกี่ยวกับ hovertree.com * /// หลายฟังก์ชั่น accmul (arg1, arg2) {var m = 0, s1 = arg1.toString (), s2 = arg2.toString (); ลอง {m+= s1.split (".") [1] .length} catch (e) {} ลอง {m+= s2.split (".") [1] .length} catch (e) {} หมายเลขกลับ (s1.replace (",", ") Accadd (Arg1, Arg2) {var r1, r2, m; ลอง {r1 = arg1.toString (). split (".") [1] .length} catch (e) {r1 = 0} ลอง {r2 = arg2.toString (). แยก (".") [1] .length (arg1*m+arg2*m)/m} // ฟังก์ชั่นการลบ subtr (arg1, arg2) {var r1, r2, m, n; ลอง {r1 = arg1.toString (). split (".") [1] .length} catch (e) {r1 = 0} ลอง {r2 = arg2.toString (). แยก (".") [1] .length n = (r1> = r2)? r1: r2; return ((arg1*m-arg2*m)/m) .tofixed (n); -ทางออกที่สมบูรณ์แบบสำหรับการสูญเสียความแม่นยำของทศนิยมจาวาสคริปต์ข้างต้นคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น