ASP/VBScript - Int() contre CInt()
-
09-06-2019 - |
Question
Quelle est la différence en ASP/VBScript entre Int()
et CInt()
?
La solution
La fonction Int renvoie la partie entière d'un nombre spécifié.
La fonction CInt convertit une expression en type Integer.
Et la meilleure réponse vient de MSDN
CInt diffère des fonctions Fix et Int, qui tronquent plutôt qu'arrondissent la partie fractionnaire d'un nombre.Lorsque la partie fractionnaire est exactement 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.
Autres conseils
Et la différence la plus importante (IME, au moins)... c'est que CInt déborde à 32 767.
Voici une autre différence :
Scénario:
wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)
résultat:
4091
4090 (????)
4091
Des pensées?
La réponse habituelle à ce problème consiste à forcer manuellement un nouvel arrondi.Ce problème est aussi vieux que FORTRAN.
Au lieu de
a = int(40.91 * 100)
Utiliser
b = 40.91 * 100
a = int(b + 0.5)
Astuce très ancienne, encore utile de temps en temps dans les feuilles de calcul Excel.