single
Nombres à Double Précision
Glissez pour afficher le menu
La précision de float (7 chiffres décimaux) n'est pas toujours suffisante. Mais C++ propose une solution : double. Avec une précision de 15 chiffres décimaux, il est bien plus précis que float. La syntaxe d'utilisation de double reste inchangée :
double.
1double num = 3.14159265359;
Par défaut, cout affiche les nombres à virgule flottante avec une précision de 6 chiffres significatifs. Ainsi, aucune différence n'est visible entre float et double. Pour définir une précision supérieure, il est possible d'utiliser à nouveau std::cout << std::setprecision(15); (cela fixe la précision à 15 chiffres significatifs).
N'oubliez pas d'inclure <iomanip> pour pouvoir utiliser std::setprecision().
main.cpp
123456789101112131415#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }
Comment une meilleure précision est-elle obtenue avec double ?
Cela utilise simplement plus de mémoire. Un type float occupe 4 octets, tandis qu'un double occupe 8 octets de mémoire.
Il existe également un type long double. Sa taille varie de 8 octets (comme un double) à 16 octets. Vous pouvez vérifier la taille du long double sur votre système en utilisant le code suivant :
sizeof.h
1std::cout << sizeof(long double);
De plus, il convient d’ajouter L à une valeur lors de l’affectation (sinon, la valeur sera affectée avec la précision de double). Consultez l’exemple :
double.h
1long double pi = 3.141592653589793238462643L;
Si vous obtenez des zéros dans la sortie, assurez-vous d'avoir attribué les valeurs exactement comme indiqué ci-dessus (1/3., 1/3.L).
Swipe to start coding
Vous devez calculer (1/3)² en utilisant différents types de données. Pour cela, assignez la valeur de 1/3 à des variables de type float, double et long double. Ensuite, affichez ces nombres multipliés par eux-mêmes.
- Initialiser une variable
floatavec la valeur1/3.; - Initialiser une variable
doubleavec la valeur1/3.; - Initialiser une variable
long doubleavec la valeur1/3.L.
Remarque :long doubleoccupe 16 octets de mémoire sur notre système - Définir la précision de l'affichage à 25 décimales avec
setprecision(25); - Afficher toutes ces valeurs multipliées par elles-mêmes.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion