Bug CInt - VB/VBA/VBS - Programmation
Marsh Posté le 01-03-2016 à 11:13:55
Bonjour, bonjour !
C'est normal car cette fonction suit une norme internationale, si, si ‼
Et comme indiqué pourtant dans l'aide VBA interne …
Dans cette même aide de CInt (comme CLng) sont indiquées les fonctions classiques, suffit donc de la lire …
Marsh Posté le 01-03-2016 à 16:19:21
Effectivement !
Citation :
CLng differs from the Fix and Int functions, which truncate, rather than round, the fractional part of a number. |
Là est toute l'astuce même si effectivement c'est déroutant et sur des valeurs discrètes ça gêne parfois plus qu'autre chose...
Marsh Posté le 04-03-2016 à 16:23:21
Il s'agit effectivement d'un problème d'arrondi (au pair le plus près),
alors que visiblement, tu t'attends à un arrondi arithmétique (celui qu'on apprend à l'école).
'Essaies ce code :
Code :
|
Marsh Posté le 04-03-2016 à 18:33:06
Purée, autant pour moi, l'aide interne pourtant d'une version 2003 est fausse, j'aurais dû vérifier le résultat !
Bien vu Patrice !
Sinon en ajoutant un iota, les fonctions CInt & Round s'en sortent :
Code :
|
Autre voie : Debug.Print Format(2.5, "0" ) …
Marsh Posté le 01-03-2016 à 07:38:53
Bonjour,
Depuis Excel 2010, en VBA, j'obtiens ces résultats :
- CInt(17.1) = 17 : OK
- CInt(17.5) = 18 : OK
- CInt(18.1) = 18 : OK
- CInt(19.1) = 19 : OK
- CInt(19.5) = 20 : OK
Mais
- CInt(18.5) = 18 : C'est quoi cette valeur ? Et mon 19 ?
Une idée ?
Merci
---------------
Floppy