Erreur de compilation ou exécution Builder 64bits: Passage d'un double en int
Bonjour à tous,
je suis en train de migrer une app C++Builder 32bits vers Sydney 10.4 en 64bits.
Voici un cas de plantage de compilation ou d'exécution lors du passage d'une valeur en doube vers int:
Voici le code ci-dessous:
Code:
1 2 3
| double tmpVal64 = 1E100;
int kk;
kk = tmpVal64; // ou kk = (int) tmpVal64; |
Ce code a été testé sous 32bits, tout est OK (bien sure que la valeur kk n'est pas correct, mais on s'enfiche car une valeur 1e100 est une exception, au moins pas de plantage).
Dans le système Sydney 10.4, 64bits, ce sera un plantage!
Mon code n'est pas très professionnel, mais il tourne OK depuis 15 ans.
Pour le moment, je fais une limite de valeur tmpVal < 1e9 (max d'un int).
Est-ce qu'il y a d'autre méthode professionnelle permettant d'éviter ce plantage sous 64 bits, svp.
Merci d'avance de votre aide.
Xavier