Java 小数点后两位的除法无效
我试图除以193251715/659669075,得到29.30%的结果(因此,用两个小数点将其四舍五入到最接近的值) 以下是我所做的:Java 小数点后两位的除法无效,java,bigdecimal,Java,Bigdecimal,我试图除以193251715/659669075,得到29.30%的结果(因此,用两个小数点将其四舍五入到最接近的值) 以下是我所做的: new BigDecimal(193251715).divide(new BigDecimal(659669075) , 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)) 但我已经29岁了 我做错了什么?那是因为你要乘以100来表示一个百分比。您应该使用4的刻度(而不是2)进行除法,然后将刻度设置为
new BigDecimal(193251715).divide(new BigDecimal(659669075) , 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100))
但我已经29岁了
我做错了什么?那是因为你要乘以100来表示一个百分比。您应该使用4的刻度(而不是2)进行除法,然后将刻度设置为2:
new BigDecimal(193251715).divide(new BigDecimal(659669075), 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100))
.setScale(2)
将
比例设置为4
,以包含更多的小数空间
最后将刻度设置为2,使其由29.30000改为29.30
public static void main(String[] args) throws ParseException {
BigDecimal bg = new BigDecimal(193251715)
.divide(new BigDecimal(659669075), 4, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100)).setScale(2);
System.out.println(bg);
}
或者从
100
开始:新的BigDecimal(100)。乘法(新的BigDecimal(193251715))。除法(新的BigDecimal(659669075),2,取整模式。向上减半)
。