java.math.BigDecimal.toString()
może zwrócić wartość "0.888200000". Co mogę zrobić najlepiej, jeśli chcę zamiast tego "0.8882"? Nigdy nie wiem (chyba, że obliczam dla każdego przypadku) długość części całkowitej (od lewej do punktu), wartość może być 123.8882 równie łatwo jak 123456.88.Jak usunąć nieznaczne zera podczas konwersji BigDecimal na ciąg w Javie?
7
A
Odpowiedz
10
Zastosowanie stripTrailingZeros()
:
Zwraca BigDecimal który jest liczbowo równa ten ale przy zer usuniętych z reprezentacji.
Zobacz http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html
1
Albo, jeśli masz ochotę wyrażenia regularne:
Pattern p = Pattern.compile("(.*?)0*$");
Matcher m = p.matcher(yourString);
String result=m.group(1);
które mogą być szybciej niż cały bałagan rzeczy klasa BigInteger
robi wewnętrznie w swojej stripTrailingZeroes
metody
+1
Poręczna opcja. Dzięki. – Ivan
Powiązane problemy
- 1. Jak przekonwertować BigDecimal na Double w Javie?
- 2. BigDecimal na ciąg
- 3. BigDecimal w Javie
- 4. Jak utworzyć losowy BigDecimal w Javie?
- 5. Porównaj, jeśli BigDecimal jest większy od zera
- 6. Jak przeanalizować ciąg do BigDecimal?
- 7. Jak zrobić ułamkową moc na BigDecimal w Javie?
- 8. Jak przekonwertować BigInteger na BigDecimal?
- 9. utrata precyzji konwersji z java BigDecimal na podwójne
- 10. Jak przekonwertować ciąg binarny na liczbę podstawową 10 w Javie
- 11. ORACLE konwersji liczby na ciąg
- 12. Konwersja bajtowy ciąg w Javie
- 13. Jak przekonwertować DataInputStream na ciąg w Javie?
- 14. Jak przekonwertować ciąg na bajt w Javie
- 15. jak przekonwertować procentowy ciąg do BigDecimal?
- 16. Jak mogę wyprowadzić wiodące zera w Ruby?
- 17. Wyjątek OutOfMemory w konwersji ByteArray na ciąg?
- 18. Jak przekonwertować tablicę bajtów na ciąg w Javie?
- 19. Jak pomnożyć BigDecimal przez liczbę całkowitą w Javie
- 20. Szybka ciąg byte [] konwersji
- 21. Przekieruj stdout na ciąg znaków w Javie
- 22. BigDecimal nie może być wymuszony na BigDecimal
- 23. Błąd konwersji datetime ciąg
- 24. Drukowanie ciąg na obrazie w Javie
- 25. Serializacja BigDecimal w GWT
- 26. Android Resources konwersji na ciąg TypedValue ostrzeżenia
- 27. Jak usunąć pusty ciąg na liście?
- 28. Generic ciąg ENUM konwersji
- 29. Jak usunąć początkowe i końcowe zera w ciągu znaków? Python
- 30. Podwójnie długa bez konwersji w Javie
dzięki. Tęskniłem za tym, ponieważ faktycznie koduję Scalę, a jego standardowe opakowanie BigDecimal nie wygląda na stripTrailingZeros :-( – Ivan
@Ivan: Biblioteka jest taka sama bez względu na język, którego używasz, więc mam nadzieję, że będzie po prostu Praca (tm). –
Tak, to jest @ tj-crowder, ale zwykle unikamy używania typów Java bezpośrednio, chyba że jest to konieczne w Scali - wolimy używać standardowego "opakowania" Scala nad typem ('scala.math.BigDecimal'), ale to faktycznie obejmuje 'java.math.BigDecimal' i możemy uzyskać do niego dostęp w taki sposób, jakiego nie oferuje opakowanie .. – Ivan