ASP/VBScript - Int()vs CInt()

问题描述:

ASP/VBScript在Int()CInt()之间有什么区别?ASP/VBScript - Int()vs CInt()

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

CInt函数转换输入整数的表达式。

而最好的答案来自MSDN

CINT从修复不同,Int函数截断,而不是圆的,一个数的小数部分。当小数部分精确到0.5时,CInt函数总是将其四舍五入到最接近的偶数。例如,0.5轮到0和1.5轮到2.

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

+0

非常感谢提醒int是一个有符号的16 BIT整数! – 2016-09-11 14:29:17

这里是另一个区别:

脚本:

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

这个问题的通常答案是手动强制重新整理。这个问题和FORTRAN一样古老。

而不是

a = int(40.91 * 100) 

使用

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

很老把戏,仍然在Excel电子表格有用不时。