有兩個(gè)函數(shù):Int 和 Fix。
創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、達(dá)州服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城網(wǎng)站定制開(kāi)發(fā)、政府網(wǎng)站等各類型客戶群體,為全球1000+企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。
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ù)。
即簡(jiǎn)單保留整數(shù)部分,如:
Fix(3.9) = 3
Fix(-3.9) = -3
如果需要“四舍五入”,則得巧妙利用 Int 函數(shù):
Int(x + 0.5) 表示四舍五入到個(gè)位;
Int(x * 100 + 0.5) * 0.01 表示四舍五入到百分位(小數(shù)點(diǎn)后第二位)
date是一個(gè)類型。。。似乎不能賦值吧
由Sting轉(zhuǎn)換成 Integer 可以這樣寫
dim a as string="adasdfsdfsferqwer"
dim b as integer
b= CUInt(a)
語(yǔ)法是正確的。。。但你要是把 幾個(gè)字符轉(zhuǎn)硬轉(zhuǎn)換為 數(shù)字整型 但這幾個(gè)字符串又不是數(shù)子 一定要出錯(cuò)的
如果是下面就沒(méi)錯(cuò)了
dim a as string="45446464646"
dim b as integer
b= CUInt(a)
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
代碼分析:
Math.Floor:返回小于或等于指定數(shù)字的最大整數(shù)。
Fix:返回?cái)?shù)字的整數(shù)部分。
Math.Floor?和?Fix?函數(shù)都移除?Number?的小數(shù)部分并返回得到的整數(shù)值。
Math.Floor?和?Fix?函數(shù)之間的區(qū)別在于:如果?Number?為負(fù),則?Math.Floor?返回小于或等于?Number?的第一個(gè)負(fù)整數(shù),而?Fix?返回大于或等于?Number?的第一個(gè)負(fù)整數(shù)。例如,Math.Floor?將?-8.4?轉(zhuǎn)換成?-9,而?Fix?將?-8.4?轉(zhuǎn)換成?-8。
你的要求:如果你的要求是直接舍去,那么應(yīng)當(dāng)采用Fix方法,考慮到時(shí)負(fù)數(shù)的情況,那么采用Math.Floor將會(huì)出現(xiàn)非預(yù)期的結(jié)果。
測(cè)試結(jié)果:見(jiàn)附圖。
歡迎交流。
直接用int就可以了。
int(2310.125)=2310
如果需要自定義格式輸出,就要用tostring方法,比如:
2310.231.tostring("0")的結(jié)果就是2310。
如果你要去掉個(gè)位數(shù),看來(lái)只有(2310.231/10).tostring("0")了。
詳細(xì)的ToString里面的參數(shù),請(qǐng)看MSDN。我查了一下,有,地址是:
Integer 變量以帶符號(hào)的 32 位(4 個(gè)字節(jié))整數(shù)形式存儲(chǔ),取值范圍為 -2,147,483,648 到 2,147,483,647。
Integer 數(shù)據(jù)類型在 32 位處理器上提供最佳性能,此時(shí)較小的整型在內(nèi)存中寫入和讀出的速度要慢一些。
可將 Integer 數(shù)據(jù)類型轉(zhuǎn)換為 Long、Single、Double 或 Decimal,而不會(huì)出現(xiàn) System.OverflowException 錯(cuò)誤。
警告 如果您要建立與用 Visual Basic 6.0 編寫的組件(例如自動(dòng)化對(duì)象或 COM 對(duì)象)的接口,請(qǐng)牢記 Integer 在 Visual Basic 6.0 中具有不同的數(shù)據(jù)寬度(16 位)。若將一個(gè) 16 位參數(shù)傳遞給這樣的組件,在 Visual Basic .NET 中應(yīng)將其聲明為 Short 而不是 Integer。
在文本后追加文本類型字符 I 可將其強(qiáng)制轉(zhuǎn)換成 Integer 數(shù)據(jù)類型。在任何標(biāo)識(shí)符后追加標(biāo)識(shí)符類型字符 % 可將其強(qiáng)制轉(zhuǎn)換成 Integer 數(shù)據(jù)類型。
等價(jià)的 .NET 數(shù)據(jù)類型是 System.Int32。