Quelle est la précision de long double en C ++?
-
20-08-2019 - |
Question
Quelqu'un sait-il comment connaître la précision de long double
sur une plate-forme spécifique? Il semble que je perde en précision après 17 chiffres décimaux, ce qui est la même chose que lorsque je viens d'utiliser double
. Je m'attendrais à en avoir plus, car <=> est représenté avec 8 octets sur ma plate-forme, alors que <=> est 12 octets.
Avant que vous ne posiez la question, ceci s’applique à Project Euler, alors oui, j’ai besoin de plus de 17 chiffres. :)
MODIFIER: Merci pour vos réponses rapides. Je viens de confirmer que je ne peux obtenir que 18 chiffres décimaux en utilisant <=> sur mon système.
La solution
Vous pouvez le savoir avec std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
Autres conseils
Vous pouvez utiliser < cfloat > . . Plus précisément:
LDBL_DIG