Contenu du cours
Types de Données C++
Types de Données C++
Nombres à Double Précision
La précision de float
(7 chiffres décimaux) n'est pas toujours suffisante. Mais C++ a une solution : double
. Avec une précision de 15 chiffres décimaux, il est beaucoup plus précis que float
. La syntaxe pour utiliser double est la même que d'habitude :
double
double num = 3.14159265359;
Par défaut, cout
imprime les nombres à virgule flottante avec une précision de 6 chiffres significatifs. De cette façon, vous ne verrez pas de différence entre float
et double
. Pour définir une précision plus grande, nous pouvons utiliser std::cout << std::setprecision(15);
à nouveau (cela définira la précision à 15 chiffres significatifs).
N'oubliez pas d'inclure <iomanip>
pour pouvoir utiliser std::setprecision()
.
main
#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 dans double
?
Cela prend simplement plus de mémoire. Un type float
occupe 4 octets, et 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
std::cout << sizeof(long double);
De plus, vous devez ajouter L
à une valeur que vous assignez (sinon, la valeur sera assignée avec la précision de double
). Regardez l'exemple :
double
long double pi = 3.141592653589793238462643L;
Remarque
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 aux variables de type float
, double
et long double
. Ensuite, imprimez ces nombres multipliés par eux-mêmes.
- Initialisez une variable
float
avec la valeur1/3.
; - Initialisez une variable
double
avec la valeur1/3.
; - Initialisez une variable
long double
avec la valeur1/3.L
.
note :long double
occupe 16 octets de mémoire sur notre système - Réglez la précision de la sortie à 25 décimales avec
setprecision(25)
; - Imprimez toutes ces valeurs multipliées par elles-mêmes.
Solution
solution
Merci pour vos commentaires !
Nombres à Double Précision
La précision de float
(7 chiffres décimaux) n'est pas toujours suffisante. Mais C++ a une solution : double
. Avec une précision de 15 chiffres décimaux, il est beaucoup plus précis que float
. La syntaxe pour utiliser double est la même que d'habitude :
double
double num = 3.14159265359;
Par défaut, cout
imprime les nombres à virgule flottante avec une précision de 6 chiffres significatifs. De cette façon, vous ne verrez pas de différence entre float
et double
. Pour définir une précision plus grande, nous pouvons utiliser std::cout << std::setprecision(15);
à nouveau (cela définira la précision à 15 chiffres significatifs).
N'oubliez pas d'inclure <iomanip>
pour pouvoir utiliser std::setprecision()
.
main
#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 dans double
?
Cela prend simplement plus de mémoire. Un type float
occupe 4 octets, et 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
std::cout << sizeof(long double);
De plus, vous devez ajouter L
à une valeur que vous assignez (sinon, la valeur sera assignée avec la précision de double
). Regardez l'exemple :
double
long double pi = 3.141592653589793238462643L;
Remarque
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 aux variables de type float
, double
et long double
. Ensuite, imprimez ces nombres multipliés par eux-mêmes.
- Initialisez une variable
float
avec la valeur1/3.
; - Initialisez une variable
double
avec la valeur1/3.
; - Initialisez une variable
long double
avec la valeur1/3.L
.
note :long double
occupe 16 octets de mémoire sur notre système - Réglez la précision de la sortie à 25 décimales avec
setprecision(25)
; - Imprimez toutes ces valeurs multipliées par elles-mêmes.
Solution
solution
Merci pour vos commentaires !