Mam obiekt BigDecimal i chcę go przekonwertować na ciąg. Problemem jest to, że moja wartość dostał frakcji i dostaję ogromną liczbę (na długość) i potrzebuje tylko oryginalny numer w ciągu znaków na przykład: dlaBigDecimal na ciąg
BigDecimal bd = new BigDecimal(10.0001)
System.out.println(bd.toString());
System.out.println(bd.toPlainString());
wyjście jest:
10.000099999999999766941982670687139034271240234375
10.000099999999999766941982670687139034271240234375
i potrzebuje obecnie wprowadzone do być dokładnie numer 10.0001
w ciąg
sposób bardziej efektywny od konwersja 'podwójnego' w ten sposób polega na użyciu' BigDecimal.valueOf (double); ' –
@PeterLawrey Nie jestem pewien, czy rozumiem. 'BigDecimal.valueOf (double)' "zaokrągla" double w ten sam sposób dublety są zaokrąglane po wydrukowaniu, co wymaga nieco skomplikowanych reguł, więc nie jestem pewien jak na tym polegać. – assylias
'Przekształca dwukrotnie w BigDecimal, używając kanonicznej reprezentacji podwójnej udostępnionej przez metodę Double.toString (double). Uwaga: Zwykle jest to preferowany sposób przekształcania podwójnego (lub zmiennopozycyjnego) w BigDecimal, ponieważ zwrócona wartość jest równa wartości wynikającej z konstrukcji BigDecimal z wyniku użycia Double.toString (double). " –