double是雙精度 有效數(shù)值位52位 表示成指數(shù)的形式 即指數(shù)11位 即表示成
成都創(chuàng)新互聯(lián)公司專注于新洲企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城網(wǎng)站定制開發(fā)。新洲網(wǎng)站建設公司,為新洲等地區(qū)提供建站服務。全流程定制制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
所以180.89305用2進制表示是10110100.1110010010011110111011001011111110110001010110110101
即
180.89305在double中存在的實際數(shù)值是
1.01101001110010010011110111011001011111110110001010110110101 *2^7
取小數(shù)點后 52位有效值后 等于10進制的180.893049999999998
所及加最后變成了 1808930.99999999998
第一次當然輸出近似值1808931
第二次int函數(shù)去掉了小數(shù)點后的數(shù)int就是只取整數(shù)的部位的不是四舍五入 所以少了1
int在絕對值上四舍五入,Truncate在靠近0的方向取整,比如:
Sub?Main()
Dim?d?=?-1.9D
'Dim?I?As?Integer?=?Int(d)?'-2
Dim?I?As?Integer?=?Math.Truncate(d)?'-1
Console.WriteLine(I)
Console.ReadLine()
End?Sub
有兩個函數(shù):Int 和 Fix。
Int 定義為返回不大于給定參數(shù)的最大整數(shù)值,如:
Int(3.9) = 3
Int(3.1) = 3
Int(3) = 3
Int(0) = 0
Int(-3) = -3
Int(-3.1) = -4
Int(-3.9) = -4
Fix 又稱“截尾”函數(shù)。
即簡單保留整數(shù)部分,如:
Fix(3.9) = 3
Fix(-3.9) = -3
如果需要“四舍五入”,則得巧妙利用 Int 函數(shù):
Int(x + 0.5) 表示四舍五入到個位;
Int(x * 100 + 0.5) * 0.01 表示四舍五入到百分位(小數(shù)點后第二位)