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:
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double tmpVal64 = 1E100; int kk; kk = tmpVal64; // ou kk = (int) tmpVal64;
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
Partager