Вопрос

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

Скрипт:

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

результат:

4091
4090   (????)
4091

Есть предположения?

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

Вместо

a = int(40.91 * 100)

Использовать

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

Очень старый трюк, который время от времени все еще полезен в электронных таблицах Excel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top