我试图使用BigDecimal显示百分比.
例如,如果我必须这样做
double val = (9522 / total ) * 100;
System.out.println("Val is :" + val);
Run Code Online (Sandbox Code Playgroud)
总计120000.
我想将计算显示为百分比,但由于计算结果为小于0的值,我无法显示百分比
我也试过了
BigDecimal decimal = new BigDecimal((9522 * 100 ) / total);
BigDecimal roundValue = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("decimal: " + decimal);
System.out.println("roundValue: " + roundValue);
Run Code Online (Sandbox Code Playgroud)
但结果相同.
即使是小数,我怎么能显示百分比?
问题是你正在进行整数除法.
如果需要小数结果,则需要进行浮点除法.
double val = (9522 / (double) total) * 100;
Run Code Online (Sandbox Code Playgroud)
将一个操作数强制转换为double将导致Java执行正确的除法类型,而不是默认为整数除法.
归档时间: |
|
查看次数: |
2797 次 |
最近记录: |