我只是想计算增值税,但是当我除以100以获得总价格(价格*增值税/ 100),但它返回0.0.这是我的代码:
a.price=sc.nextInt();
a.vat=sc.nextInt();
a.total=a.precio*a.iva/100;
Run Code Online (Sandbox Code Playgroud)
'total'定义为FLOAT而不是INT
NIN*_*OOP 14
你需要将表达式转换为float.我在这里使用了浮点文字100.0f.
a.total= a.precio*a.iva/100.0f;
Run Code Online (Sandbox Code Playgroud)
小心 Java 中的 "/100" 操作,这会导致你计算错误并且是一个昂贵的操作(认为 / 操作是在二进制系统中完成的,而不是在十进制系统中完成)。
我在一个银行项目中,所有金额的长值都是两位小数(例如 123.45€ 是 12345),所以我们必须和你做同样的操作(“/ 100”)。我们发现有些金额会导致四舍五入……漏掉一分钱(这在银行业是不可接受的)。
但是 BigDecimal 使用简单的“movePointLeft”处理相同的操作,因此我建议您使用下一个代码:
total = (BigDecimal.valueOf(price * VAT)).moveLeft(2).doubleValue()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6315 次 |
| 最近记录: |