Bonjour.
Je rencontre un soucis dans le calcul d'une racine carré avec de gros nombre. Je pense que c'est un soucis par rapport à la quantité de nombre après la virgule mais je ne vois pas comment typer mes variables pour corriger ce soucis.
Voici le code :
Code :
- double a = 1;
- double b = 67108864; // 67 108 864
- double acarre = a * a;
- double bcarre = b * b;
- double d = Math.Sqrt(acarre + bcarre);
- // valeur de d : 67108864, résultat impossible par rapport au calcul que je demande
- // la calculatrice de windows me donne : 67 108 864,000000007450580596923828
|
Mon projet est un projet console en .NET 5 dans visual studio.
La fonction Math.Sqrt accepte en entré un double qui selon la doc accepte une valeur max de 1.7976931348623157E+308 (donc bien plus que le résultat du carré de 67 108 864).
Y'a t-il une solution en typant différemment mes variables ?
Faut-il mieux passer en c++ ou python (je compte partir la dessus car on peut avoir une précision jusqu'à 100bits) ?
Merci
Message édité par ragondin le 10-09-2021 à 20:20:42
---------------
Pays et country_code traduits : https://www.iso-country-code.com