В Java мы можем использовать String.format или Десятичный формат для форматирования/|двойной , оба поддерживают
Форматирование на основе локали .
1. Строка.формат.2%f
Для String.format
мы можем использовать %f
для форматирования двойного, просмотрите следующий пример Java для форматирования двойного.
package com.mkyong.io.utils; import java.util.Locale; public class FormatDouble1 { public static void main(String[] args) { String input = "1234567890.123456"; double d = Double.parseDouble(input); // 2 decimal points System.out.println(String.format("%,.2f", d)); // 1,234,567,890.12 // 4 decimal points System.out.println(String.format("%,.4f", d)); // 1,234,567,890.1235 // 20 digits, if enough digits, puts 0 System.out.println(String.format("%,020.2f", d)); // 00001,234,567,890.12 // 10 decimal points, if not enough digit, puts 0 System.out.println(String.format("%,.010f", d)); // 1,234,567,890.1234560000 // in scientist format System.out.println(String.format("%e", d)); // 1.234568e+09 // different locale - FRANCE System.out.println(String.format( Locale.FRANCE, "%,.2f", d)); // 1 234 567 890,12 // different locale - GERMAN System.out.println(String.format( Locale.GERMAN, "%,.2f", d)); // 1.234.567.890,12 } }
Выход
1,234,567,890.12 1,234,567,890.1235 00001,234,567,890.12 1,234,567,890.1234560000 1.234568e+09 1 234 567 890,12 1.234.567.890,12
2. Десятичный формат (#,###. ##)
В этом примере используется DecimalFormat
для форматирования двойника; он также поддерживает языковой стандарт.
package com.mkyong.io.utils; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; public class FormatDouble2 { public static void main(String[] args) { DecimalFormat df = new DecimalFormat("#,###.##"); // different locale - GERMAN DecimalFormat dfGerman = new DecimalFormat("#,###.##", new DecimalFormatSymbols(Locale.GERMAN)); String input = "1234567890.123456"; double d = Double.parseDouble(input); System.out.println(df.format(d)); // 1,234,567,890.12 System.out.println(dfGerman.format(d)); // 1.234.567.890,12 } }
Выход
1,234,567,890.12 1.234.567.890,12
Запятая – это разделитель группировок! Для обоих String.format
или Десятичный формат
, запятая “,” является разделителем группировки , результат будет зависеть от локали.
В большинстве “английских” языков разделителем группировки также является запятая “,”; Для неанглоязычных языков, таких как немецкий, разделителем группировки является точка”.”
Рекомендации
- Википедия – Язык
- Пример Java-строки.формат
- Десятичный формат javadoc
- Форматировщик JavaDoc
Оригинал: “https://mkyong.com/java/how-to-format-a-double-in-java/”