ASP/VBScript: Int() e CInt()
-
09-06-2019 - |
Domanda
Qual è la differenza tra ASP/VBScript Int()
E CInt()
?
Soluzione
La funzione Int restituisce la parte intera di un numero specificato.
La funzione CInt converte un'espressione nel tipo Integer.
E la risposta migliore viene da MSDN
CInt differisce dalle funzioni Fix e Int, che troncano, anziché arrotondare, la parte frazionaria di un numero.Quando la parte frazionaria è esattamente 0,5, la funzione CInt la arrotonda sempre al numero pari più vicino.Ad esempio, 0,5 arrotonda a 0 e 1,5 arrotonda a 2.
Altri suggerimenti
E la differenza più importante (almeno IME)... è che CInt trabocca a 32.767.
Ecco un'altra differenza:
Sceneggiatura:
wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)
risultato:
4091
4090 (????)
4091
qualche idea?
La solita risposta a questo problema è forzare manualmente un nuovo arrotondamento.Questo problema è vecchio quanto FORTRAN.
Invece di
a = int(40.91 * 100)
Utilizzo
b = 40.91 * 100
a = int(b + 0.5)
Trucco molto vecchio, ancora utile di tanto in tanto nei fogli di calcolo Excel.