js加法精度 javascript避免數(shù)字計算精度誤差的方法詳解?
javascript避免數(shù)字計算精度誤差的方法詳解?我們需要計算出數(shù)字乘以10的n次方,轉(zhuǎn)換成計算機(jī)能準(zhǔn)確識別的整數(shù),再除以10的n次方。例如,為了使0.1 0.2等于0.3,我們需要編寫如下代碼:f
javascript避免數(shù)字計算精度誤差的方法詳解?
我們需要計算出數(shù)字乘以10的n次方,轉(zhuǎn)換成計算機(jī)能準(zhǔn)確識別的整數(shù),再除以10的n次方。
例如,為了使0.1 0.2等于0.3,我們需要編寫如下代碼:
formatnum=function(F,數(shù)字){
變量M=數(shù)學(xué).pow(10,數(shù)字)
return parseInt(f*m,10)/m
}
var num1=0.1
var num2=0.2
警報(formatNum(num1 num2,1)==3)
js用什么方法進(jìn)行數(shù)字計算?
可以直接計算數(shù)字并返回從字符串轉(zhuǎn)換而來的整數(shù)。ParseInt(numstring,[radius])參數(shù):需要numstring。要轉(zhuǎn)換為數(shù)字的字符串。基數(shù)是可選的。介于2和36之間的值,表示numstring所包含的數(shù)字的基數(shù)。如果未提供,則前綴為“0x”的字符串將被視為十六進(jìn)制,前綴為“0”的字符串將被視為八進(jìn)制。所有其他字符串都被視為十進(jìn)制。注意:parseInt方法返回一個整數(shù),該整數(shù)等于numstring中存儲的數(shù)值。如果numstring的前綴不能解釋為整數(shù),則返回Nan(不是數(shù)字)。ParseInt(“ABC”)//返回Nan。ParseInt(“12abc”)//返回12。用IsNaN方法可以檢測到Nan。