Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Soucis avec la fonction Int en VBA

Drxl

XLDnaute Nouveau
Bonjour,
Je dois transposer des macros Excel sous C# et vérifier que les résultats sont identiques
Seulement j'ai un soucis avec une fonction très simple : "Int"
D'apres ce que j'en ai compris, la fonction Int renvoie l'entier inférieur le plus proche :
Int(88,1) = 88
Int(88.9) = 88
ce qui correspondrait sous c# à Math.Floor()

Mon soucis vient d'un comportement de la fonction "Int" que je ne comprend pas
Pour vous montrer mon problème, j'utilise dans la windows "Immediate"

?(150+7.3)*10
1573

?Int((150+7.3)*10)
1572

?Int(1573)
1573

Je ne comprends pas pourquoi j'obtiens 1572 avec "?Int((150+7.3)*10)"

Par avance, merci de m’éclairer.
PS : le fichier excel n'est pas modifiable, je dois comprendre sa manière de focntionner pour le transposer en c#
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
propension de vba à chercher à évaluer à la compilation, en tant que constantes les expressions composées exclusivement de constantes.
Maintenant que tu l'écris, j'ai effectivement déjà rencontré des comportement étranges avec des expressions constituées uniquement de constantes. Je m'étais dit à l'époque que VBA devait attribuer des types implicites (entier ou non et pas connus d’avance) aux différents termes de l'expression pendant l'évaluation de la formule et que ceci pouvaient justifier un résultat étrange. Je n'avais pas creusé plus que ça.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…