Quelle est la différence entre ASP/VBScript entre Int()
et CInt()
?ASP/VBScript - Int() vs CInt()
Répondre
La fonction Int renvoie la partie entière d'un nombre spécifié.
La fonction CInt convertit une expression de type Integer.
Et la meilleure réponse vient de MSDN
CInt diffère de Fix et fonctions Int, qui tronquent, plutôt que ronde, la partie décimale d'un nombre. Lorsque la partie fractionnaire est exactement égale à 0,5, la fonction CInt l'arrondit toujours au nombre pair le plus proche. Par exemple, 0,5 arrondit à 0 et 1,5 arrondit à 2.
Et, la différence la plus importante (IME, au moins) .... est que CInt overflows at 32,767.
Voici une autre différence:
Script:
wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)
Résultat:
4091
4090 (????)
4091
Toute pensée?
Arrondi à virgule flottante. La valeur réelle de "40.91" dans le code est extrêmement proche de, mais juste inférieure à la valeur décimale théorique. CInt arrondit au plus proche, Int tronque. –
La réponse habituelle à ce problème consiste à forcer manuellement un arrondi. Ce problème est aussi vieux que FORTRAN.
Au lieu de
a = int(40.91 * 100)
Utilisez
b = 40.91 * 100
a = int(b + 0.5)
Trick ancienne, toujours utile dans des feuilles de calcul Excel de temps en temps.
Merci beaucoup pour le rappel que int est un entier signé 16 BIT! –