2008-08-21 56 views

回答

32

Int函數返回指定數目的整數部分。

CInt函數轉換輸入整數的表達式。

而最好的答案來自MSDN

CINT從修復不同,Int函數截斷,而不是圓的,一個數的小數部分。當小數部分精確到0.5時,CInt函數總是將其四捨五入到最接近的偶數。例如,0.5輪到0和1.5輪到2.

16

而且,最重要的區別(IME,至少)....是CInt overflows at 32,767

+0

非常感謝提醒int是一個有符號的16 BIT整數! – 2016-09-11 14:29:17

3

這裏是另一個區別:

腳本:

wscript.echo 40.91 * 100 
wscript.echo Int(40.91 * 100) 
wscript.echo CInt(40.91 * 100) 

結果:

4091 
4090 (????) 
4091 

有什麼想法?

+1

浮點舍入。代碼中「40.91」的實際值非常接近但小於理論小數值。 CInt輪到最近,Int截斷。 – 2010-05-28 17:22:43

3

這個問題的通常答案是手動強制重新整理。這個問題和FORTRAN一樣古老。

而不是

a = int(40.91 * 100) 

使用

b = 40.91 * 100 
a = int(b + 0.5) 

很老把戲,仍然在Excel電子表格有用不時。