web-dev-qa-db-ja.com

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

何が間違っていますか?

42
Jan Ajan

結果のスケールを指定していません。これを試してください

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 [〜#〜] をお読みください

73
Rohan Grover