Jestem trochę stucked z przechowywaniem numer z maksymalną dostępną precyzją:Jak przechowywać dwukrotnie z maksymalną precyzją
double tmp = 569.232306826889043804840184748172760009765625L;
próbuję wydrukować go na ekranie:
printf("%0.52f\n", tmp);
I że to, co mam:
569,2323068268890400000000000000000000000000000000000000
Czy to maksymalna precyzja, jaką mogę osiągnąć?
P.S. Używam programu Visual Studio 2008
W C++ można użyć ['std :: numeric_limits'] (http://en.cppreference.com/w/cpp/types/numeric_limits), aby poznać ograniczenia i precyzję. –
Należy również pamiętać, że nie tylko precyzja, ale i dokładność. Wiele liczb dziesiętnych nie może być dokładnie reprezentowanych przez zmiennoprzecinkowe. –
'Trochę utknąłem z przechowywaniem numeru z maksymalną dostępną precyzją' Dlaczego utknąłem? Po prostu zadeklaruj "podwójne" (lub "długie podwójne"), a tam masz swoją "maksymalną precyzję". W przeciwnym razie nie rozumiem w pełni twojego pytania. – PaulMcKenzie