Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Numeri a Doppia Precisione | Tipi di Dati Numerici
Tipi di Dati in C++
Sezione 2. Capitolo 5
single

single

bookNumeri 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.

double.

copy
1
double 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

main.cpp

copy
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

sizeof.h

copy
1
std::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

double.h

copy
1
long double pi = 3.141592653589793238462643L;
Note
Nota

Se hai ottenuto zeri nell'output, assicurati di aver assegnato i valori esattamente come mostrato sopra (1/3., 1/3.L).

Compito

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.

  1. Inizializzare una variabile float con il valore 1/3.;
  2. Inizializzare una variabile double con il valore 1/3.;
  3. Inizializzare una variabile long double con il valore 1/3.L.
    nota: long double occupa 16 byte di memoria sul nostro sistema
  4. Impostare la precisione dell'output a 25 decimali con setprecision(25);
  5. Stampare tutti questi valori moltiplicati per se stessi.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt