Как отформатировать число в Java?
Что такое «лучшие практики»?
Нужно ли округлять число перед форматированием?
32.302342342342343
=>32.30
.7323
=>0.73
и т.п.
java
number-formatting
ScArcher2
источник
источник
Double.valueOf
вместоnew Double(number).doubleValue()
. Последней строкой в последнем примере будетdouble dd2dec = Double.valueOf(df2.format(dd));
Вы и
String.format()
станете новыми лучшими друзьями!https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax
источник
String.format
предназначен для форматирования строк, а не чисел.DecimalFormat
. ИDecimalFormat
немного быстрее, чемString.format
. ПростойSystem.currentTimeMillis
diff показывает это.Имейте в виду, что классы, производные от NumberFormat (и большинства других потомков Format), не синхронизируются. Распространенная (но опасная) практика - создавать объекты формата и сохранять их в статических переменных в классе util. На практике он почти всегда будет работать, пока не начнет испытывать значительную нагрузку.
источник
Круглые числа, да. Это основной пример источника .
источник
Попробуй это:
Просто и эффективно.
источник
Используйте DecimalFormat .
источник
В стандартной библиотеке есть два подхода. Один из них - использовать java.text.DecimalFormat. Другие, более загадочные методы (String.format, PrintStream.printf и т. Д.), Основанные на java.util.Formatter, должны радовать программистов на C (иш).
источник
Как отметил Роберт в своем ответе: DecimalFormat не синхронизируется, и API не гарантирует безопасность потоков (это может зависеть от версии / поставщика JVM, которую вы используете).
Вместо этого используйте Spring Numberformatter , который является потокобезопасным.
источник
Например, если значение типа double, переданное в метод formatDouble (), равно 345,9372, результатом будет следующее: 345,937 Аналогично, если значение .7697 будет передано методу, результатом будет следующее: .770
источник