Рубрики
Без рубрики

Как отформатировать двойник в Java

В Java мы можем использовать формат String.format или десятичный формат для форматирования double, оба поддерживают форматирование локали.

В 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 или Десятичный формат , запятая “,” является разделителем группировки , результат будет зависеть от локали.

В большинстве “английских” языков разделителем группировки также является запятая “,”; Для неанглоязычных языков, таких как немецкий, разделителем группировки является точка”.”

Рекомендации

Оригинал: “https://mkyong.com/java/how-to-format-a-double-in-java/”