64-bitowe podwójne może dokładnie reprezentować liczbę całkowitą +/- 2 53
Biorąc pod uwagę ten fakt, zdecydowałem się użyć podwójnego typu jako jednego typu dla wszystkich moich typów, ponieważ moja największa liczba całkowita jest bez znaku 32-bitowa.
Ale teraz muszę wydrukować te pseudo liczby całkowite, ale problem polega na tym, że są one również pomieszane z rzeczywistymi liczbami podwójnymi.
Jak więc ładnie wydrukować te kopie w Javie?
Próbowałem String.format("%f", value)
, co jest bliskie, ale dostaję dużo zer końcowych dla małych wartości.
Oto przykładowy wynik działania %f
232,00000000 0,18000000000 1237875192.0 4.5800000000 0,00000000 1,23450000
Chcę to:
232 0,18 1237875192 4.58 0 1,2345
Pewnie, że mogę napisać funkcję do przycinania tych zer, ale to duża utrata wydajności z powodu manipulacji ciągiem. Czy mogę zrobić lepiej z innym kodem formatu?
EDYTOWAĆ
Odpowiedzi Toma E. i Jeremy'ego S. są niedopuszczalne, ponieważ obaj arbitralnie zaokrąglają do 2 miejsc po przecinku. Proszę zrozumieć problem przed odpowiedzią.
EDYCJA 2
Pamiętaj, że zależyString.format(format, args...)
to od ustawień regionalnych (patrz odpowiedzi poniżej).
System.out.println("YOUR STRING" + YOUR_DOUBLE_VARIABLE);