Come tutti sanno, la precisione è limitata quando si utilizza printf
per produrre il valore di float
.
Tuttavia, c'è un trucco per aumentare la precisione nella produzione, come mostra questo esempio:Precisione di galleggianti con printf
#include <stdio.h>
int main()
{
float f = 1318926965; /* 10 random digits */
printf("%10.f\n", f); /* prints only 8 correct digits */
printf("%10d\n", *(int*)&f); /* prints all digits correctly */
return 0;
}
e la mia domanda è, perché le persone non usano questo trucco più spesso?
Perché il comportamento potenzialmente non definito è negativo. (Modifica: tecnicamente potrebbe non essere un comportamento indefinito, dato che non sono sicuro di quello che dice lo standard. Endianess potrebbe morderti con questo però.) – Corbin
+1 per una buona battuta di aprile! – Henrik
A quanto pare mi ha dato x.x – Corbin