2008-08-21 10 views

Odpowiedz

32

Funkcja Int zwraca część całkowitej określonej liczby.

Funkcja CInt przekształca wyrażenie typ całkowity.

A najlepszą odpowiedź pochodzi z MSDN

CInt różni się od funkcji Fix i Int, które obcinają, zamiast okrągłe, część ułamkową liczby. Kiedy część ułamkowa jest dokładnie 0,5, funkcja CInt zawsze zaokrągla ją do najbliższej liczby parzystej. Na przykład: 0,5 rundy na 0, i 1.5 rundy na 2.

16

Najważniejszą różnicą (przynajmniej IME) jest .... CInt overflows at 32,767.

+0

Wielkie dzięki za przypomnienie, że int to 16-znakowa liczba całkowita BIT! –

3

Oto kolejna różnica:

Scenariusz:

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

wynik:

4091 
4090 (????) 
4091 

Wszelkie myśli?

+1

Zaokrąglanie zaokrąglone. Rzeczywista wartość "40.91" w kodzie jest bardzo bliska, ale tylko mniejsza niż teoretyczna wartość dziesiętna. CInt zaokrągla do najbliższego, Int obcina. –

3

Zwykłą odpowiedzią na ten problem jest ręczne wymuszenie ponownego zaokrąglenia. Ten problem jest tak stary jak FORTRAN.

Zamiast

a = int(40.91 * 100) 

użytkowania

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

Bardzo stara sztuczka, nadal użyteczny w arkuszach kalkulacyjnych Excel od czasu do czasu.