假设值是0.10705921712947473,而您只想保存前3个十进制数字。首先让我们声明值-
double val = 320.0 / 2989.0; BigDecimal big = new BigDecimal(val);
现在,使用setScale()并将参数设置为3以保存3个小数位-
big = big.setScale(3, RoundingMode.HALF_DOWN);
import java.math.BigDecimal; import java.math.RoundingMode; public class Demo { public static void main(String[] args) { double val = 320.0 / 2989.0; BigDecimal big = new BigDecimal(val); System.out.println(String.format("Value = %s", val)); // scale big = big.setScale(3, RoundingMode.HALF_DOWN); double val2 = big.doubleValue(); System.out.println(String.format("Scaled result = %s", val2)); } }
输出结果
Value = 0.10705921712947473 Scaled result = 0.107