Методы Java для записи чисел с десятичными переменными

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

  1. Использование класса DecimalFormat:

    import java.text.DecimalFormat;
    double number = 123.456789;
    int decimalPlaces = 2;
    DecimalFormat df = new DecimalFormat("#." + new String(new char[decimalPlaces]).replace("\0", "0"));
    String formattedNumber = df.format(number);
    System.out.println(formattedNumber);

    Выход: 123,46

  2. Использование метода String.format:

    double number = 123.456789;
    int decimalPlaces = 2;
    String formattedNumber = String.format("%." + decimalPlaces + "f", number);
    System.out.println(formattedNumber);

    Выход: 123,46

  3. Использование класса BigDecimal:

    import java.math.BigDecimal;
    double number = 123.456789;
    int decimalPlaces = 2;
    BigDecimal bd = new BigDecimal(number);
    bd = bd.setScale(decimalPlaces, BigDecimal.ROUND_HALF_UP);
    String formattedNumber = bd.toString();
    System.out.println(formattedNumber);

    Выход: 123,46

  4. Использование класса DecimalFormatSymbols:

    import java.text.DecimalFormat;
    import java.text.DecimalFormatSymbols;
    double number = 123.456789;
    int decimalPlaces = 2;
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setDecimalSeparator('.');
    symbols.setGroupingSeparator(',');
    DecimalFormat df = new DecimalFormat("#." + new String(new char[decimalPlaces]).replace("\0", "0"), symbols);
    String formattedNumber = df.format(number);
    System.out.println(formattedNumber);

    Выход: 123,46