溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

那么,問題來了,你會javascript(js)的小數(shù)點乘法除法問題嗎?

發(fā)布時間:2020-04-28 03:50:40 來源:網(wǎng)絡 閱讀:468 作者:沙漏半杯 欄目:編程語言

用js計算

12.32 * 7? ?結果是多少?


答案:86.24000000000001


為什么會出現(xiàn)這種問題?怎么解決?


js在處理小數(shù)的乘除法的時候有一個bug,解決的方法可以是:將小數(shù)變?yōu)檎麛?shù)來處理。


以上的計算可以改為:

12.32 * 100 * 7 /100

得出的結果是:86.24,正確。


另外再計算一下:

8.80 * 100 * 12 / 100

結果:105.60000000000002

38.80也會出現(xiàn)類似的問題。


精確度增加10倍:

8.80 * 1000 * 12 / 1000

結果:105.6

正常了。


16.40 * 1000000 * 6 / 1000000

結果也有問題


為了讓js執(zhí)行的更準確,在以后的js小數(shù)計算中直接將值擴大10000倍,再除以10000,就可以解決問題。

var num = 38.80;

var num2 = 13;

alert(num * 10000 * 12 / 10000);


被乘和除的這個數(shù)經(jīng)過測試10000最合適,小了有些數(shù)字出問題,大了(1000000)有些數(shù)字也出問題。?

歡迎工作一到五年的Java工程師朋友們加入Java技術交流群:659270626
群內提供免費的Java架構學習資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI