single
Numeri a Doppia Precisione
Scorri per mostrare il menu
La precisione di float (7 cifre decimali) non è sempre sufficiente. Tuttavia, C++ offre una soluzione: double. Con una precisione di 15 cifre decimali, è molto più accurato rispetto a float. La sintassi per utilizzare double rimane invariata:
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 si noterà alcuna differenza tra float e double. Per impostare una precisione maggiore, è possibile utilizzare nuovamente std::cout << std::setprecision(15); (questo imposterà la precisione a 15 cifre significative).
Ricordarsi 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. È possibile verificare la dimensione di long double sul proprio 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).
Swipe to start coding
È necessario calcolare (1/3)² utilizzando diversi tipi di dati. A tal fine, 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