如何使用BigDecimal正确划分

Jan*_*jan 44 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

结果是: 1/3 = 0

我究竟做错了什么?

Roh*_*ver 76

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

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Main {

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

}
Run Code Online (Sandbox Code Playgroud)

这将得到0.33的结果.请阅读API