Подтвердить что ты не робот

Как я могу правильно делить с помощью BigDecimal

Мой пример кода:

import java.math.*; 

public class x
{
  public static void main(String[] args)
  {
    BigDecimal a = new BigDecimal("1");
    BigDecimal b = new BigDecimal("3");
    BigDecimal c = a.divide(b, BigDecimal.ROUND_HALF_UP);
    System.out.println(a+"/"+b+" = "+c);
  }
}

Результат: 1/3 = 0

Что я делаю неправильно?

4b9b3361

Ответ 1

Вы не указали масштаб результата. Пожалуйста, попробуйте это

import java.math.*; 

    public class x
    {
      public static void main(String[] args)
      {
        BigDecimal a = new BigDecimal("1");
        BigDecimal b = new BigDecimal("3");
        BigDecimal c = a.divide(b,2, BigDecimal.ROUND_HALF_UP);
        System.out.println(a+"/"+b+" = "+c);
      }
    }

это даст результат как 0,33. Пожалуйста, прочитайте API

Рохан

Ответ 2

Создайте BigDecimal с помощью float, например "1.0"; по крайней мере, числитель, если вы хотите получить десятичный результат.