ASP/VBScript - Int()vs CInt()

Sei*_*bar 21 vbscript asp-classic

是什么之间的ASP/VBScript中的差异Int()CInt()

Pas*_*dis 34

Int函数返回指定数字的整数部分.

CInt函数将表达式转换为Integer类型.

最好的答案来自MSDN

CInt与Fix和Int函数不同,它们截断而不是舍入数字的小数部分.当小数部分恰好为0.5时,CInt函数总是将其舍入到最接近的偶数.例如,0.5轮到0轮,1.5轮到2轮.


Mar*_*ett 16

并且,最重要的区别(IME,至少)......是CInt 溢出32,767.

  • VBScript 的更高版本和环境具有更大的溢出点。例如,VBScript 15.8 及更高版本的上限为 +/- 2,147,483,647 (2认同)

小智 5

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

代替

a = int(40.91 * 100)
Run Code Online (Sandbox Code Playgroud)

b = 40.91 * 100
a = int(b + 0.5)
Run Code Online (Sandbox Code Playgroud)

非常古老的技巧,有时在 Excel 电子表格中仍然有用。