我有以下代码:
Double x = 17.0;
Double y = 0.1;
double remainder = x.doubleValue() % y.doubleValue();
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到余数= 0.09999999999999906
知道为什么??
我基本上需要检查x是否可被y完全整除.你能在java中建议其他方法吗?
谢谢
Boz*_*zho 11
因为如何表示浮点数.
如果您需要精确值,请使用BigDecimal:
BigDecimal remainder = BigDecimal.valueOf(x).remainder(BigDecimal.valueOf(y));
Run Code Online (Sandbox Code Playgroud)
另一种方法是将每个值乘以10(或100,1000),强制转换为int然后使用%.
| 归档时间: |
|
| 查看次数: |
5787 次 |
| 最近记录: |