Questa affermazione è corretta per i numeri in virgola mobile?

-1

The decimal point can "float" to accommodate larger numbers while staying in 32-bits which is why float is considered "in-accurate"

Questa è una dichiarazione accurata? Voglio sapere se capisco i numeri in virgola mobile.

    
posta Rhys 26.02.2015 - 22:00
fonte

1 risposta

4

Come affermato, questa non è una dichiarazione accurata.

Una particolare rappresentazione in virgola mobile può rappresentare esattamente alcuni valori e non può rappresentare con precisione altri valori. Lo stesso vale per tutti i tipi di dati. I tipi di dati numerici non variano nella loro "precisione" ma piuttosto nei valori che possono rappresentare con precisione. Ad esempio, un tipo intero senza segno a byte singolo può rappresentare 255, ma non può rappresentare 257 o 0,5.

Una rappresentazione a virgola mobile non è diversa. Può rappresentare alcuni numeri e non può rappresentare altri. Ciò che confonde le persone è che, a differenza dei tipi interi, i valori che una rappresentazione in virgola mobile non può rappresentare possono essere tra valori che può rappresentare. Quindi, ad esempio, una rappresentazione in virgola mobile potrebbe essere in grado di rappresentare 0,25 e 0,5, ma potrebbe non essere in grado di rappresentare 1/3.

Ciò che è vero è che con tipi interi (o tipi decimali fissi) è molto facile determinare quali valori possono essere rappresentati. Con la% co_de si sa che non è possibile rappresentare i valori frazionari, né i valori superiori a int . Con un float, richiede una conoscenza dettagliata della rappresentazione per determinare se un valore può essere rappresentato esattamente.

È molto difficile testare a livello di programmazione se il risultato di una particolare istruzione matematica produrrà un valore in virgola mobile che non può essere rappresentato esattamente. D'altra parte, è banale testare a livello di programmazione se il risultato di una particolare istruzione matematica produrrà un valore intero che non può essere rappresentato esattamente. Quindi le persone eseguono continuamente test di questo tipo con i numeri interi (test per gli overflow), ma vivono semplicemente con il fatto che potrebbero esserci arrotondamenti in virgola mobile e tenere traccia di quanto i risultati siano vicini al valore reale (la precisione .)

O un altro modo per dirla: dire che un dato valore in virgola mobile è impreciso non ha davvero senso. Invece, è meglio dire che un dato insieme di operazioni in virgola mobile può produrre risultati inaccurati.

    
risposta data 26.02.2015 - 22:49
fonte

Leggi altre domande sui tag