int在絕對(duì)值上四舍五入,Truncate在靠近0的方向取整,比如:
“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 成都創(chuàng)新互聯(lián)是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于做網(wǎng)站、成都做網(wǎng)站、軟件開(kāi)發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺(jué)傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!
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
double是雙精度 有效數(shù)值位52位 表示成指數(shù)的形式 即指數(shù)11位 即表示成
所以180.89305用2進(jìn)制表示是10110100.1110010010011110111011001011111110110001010110110101
即
180.89305在double中存在的實(shí)際數(shù)值是
1.01101001110010010011110111011001011111110110001010110110101 *2^7
取小數(shù)點(diǎn)后 52位有效值后 等于10進(jìn)制的180.893049999999998
所及加最后變成了 1808930.99999999998
第一次當(dāng)然輸出近似值1808931
第二次int函數(shù)去掉了小數(shù)點(diǎn)后的數(shù)int就是只取整數(shù)的部位的不是四舍五入 所以少了1
不是函數(shù),是使用Math類(lèi)的Ceiling方法
Dim MyNumber As Double = 2.000000001
MsgBox(Math.Ceiling(MyNumber))