如何使用BigDecimal正确划分

时间:2012-05-17 14:03:58

标签: java 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

我做错了什么?

2 个答案:

答案 0 :(得分:71)

您没有为结果指定比例。请试试这个

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

答案 1 :(得分:2)

使用浮点数创建BigDecimal,例如"1.0";至少是分子,如果你想要一个小数结果。