ASP / VBScript - Int () против CInt () - PullRequest
       16

ASP / VBScript - Int () против CInt ()

21 голосов
/ 21 августа 2008

В чем разница в ASP / VBScript между Int() и CInt()?

Ответы [ 4 ]

33 голосов
/ 21 августа 2008

Функция Int возвращает целую часть указанного числа.

Функция CInt преобразует выражение в тип Integer.

И лучший ответ приходит от MSDN

CInt отличается от функций Fix и Int, которые усекают, а не округляют дробную часть числа. Когда дробная часть равна точно 0,5, функция CInt всегда округляет ее до ближайшего четного числа. Например, 0,5 раунда до 0 и 1,5 раунда до 2.

16 голосов
/ 25 августа 2008

И самое важное отличие (по крайней мере, IME) ... заключается в том, что CInt переполняется при 32 767 .

3 голосов
/ 10 декабря 2010

Обычный ответ на этот вопрос - принудительное повторное округление вручную. Эта проблема такая же старая, как Фортран.

Вместо

a = int(40.91 * 100)

Используйте

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

Очень старая хитрость, время от времени полезная в таблицах Excel.

3 голосов
/ 11 декабря 2008

Вот еще одно отличие:

Сценарий:

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

результат:

4091
4090   (????)
4091

Есть мысли?

...