Opis typu float
w C wspomina, że liczba cyfr znaczących to 6
. JednakLiczba cyfr znaczących dla typu zmiennoprzecinkowego
float f = 12345.6;
a następnie drukować je za pomocą printf() nie drukuje 12345.6
, drukuje 12345.599609
. Co oznacza więc "6 cyfr znaczących" (lub "15 w przypadku double
") dla typu zmiennoprzecinkowego?
Należy pamiętać, że typy zmiennoprzecinkowe nie są zapisywane w bazie 10, więc liczba cyfr znaczących * dziesiętnych * jest koniecznie przybliżeniem. –
W rzeczywistości jest 8 bitów dla exp i 23 bitów dla frac. – halfelf