single
Numeri a Doppia Precisione
Scorri per mostrare il menu
La precisione di float (7 cifre decimali) non è sempre sufficiente. Ma C++ offre una soluzione: double. Con una precisione di 15 cifre decimali, è molto più accurato di float. La sintassi per utilizzare double è la stessa di sempre:
double.
1double num = 3.14159265359;
Per impostazione predefinita, cout stampa i numeri in virgola mobile con una precisione di 6 cifre significative. In questo modo, non noterai differenze tra float e double. Per impostare una precisione maggiore, possiamo usare di nuovo std::cout << std::setprecision(15); (questo imposterà la precisione a 15 cifre significative).
Non dimenticare di includere <iomanip> per poter utilizzare 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; }
Come si ottiene una precisione migliore in double?
Semplicemente occupa più memoria. Un tipo float occupa 4 byte, mentre un double occupa 8 byte di memoria.
Esiste anche un tipo long double. La sua dimensione varia da 8 byte (come un double) fino a 16 byte. Puoi verificare la dimensione di long double sul tuo sistema utilizzando il seguente codice:
sizeof.h
1std::cout << sizeof(long double);
Inoltre, è necessario aggiungere L a un valore che si sta assegnando (altrimenti, il valore verrà assegnato con la precisione di double). Osserva l'esempio:
double.h
1long double pi = 3.141592653589793238462643L;
Se hai ottenuto zeri nell'output, assicurati di aver assegnato i valori esattamente come mostrato sopra (1/3., 1/3.L).
Scorri per iniziare a programmare
È necessario calcolare (1/3)² utilizzando diversi tipi di dati. A tale scopo, assegnare il valore di 1/3 a variabili di tipo float, double e long double. Successivamente, stampare questi numeri moltiplicati per se stessi.
- Inizializzare una variabile
floatcon il valore1/3.; - Inizializzare una variabile
doublecon il valore1/3.; - Inizializzare una variabile
long doublecon il valore1/3.L.
nota:long doubleoccupa 16 byte di memoria sul nostro sistema - Impostare la precisione dell'output a 25 decimali con
setprecision(25); - Stampare tutti questi valori moltiplicati per se stessi.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione