我想在Java中将数字 2.55 转换为 255 。
我尝试了以下代码,但得到的是 254 而不是 255 :
final Double tmp = 2.55;
final Double d = tmp * 100;
final Integer i = d.intValue();
实现此目标的正确方法是什么?
答案 0 :(得分:3)
您必须舍入该值,并且可以为此使用基元。 即使用原始double而不是包装类Double
final double tmp = 2.55;
final double d = tmp * 100;
long i = Math.round(d);
System.out.println("round: "+ i);
答案 1 :(得分:2)
使用BigDecimal
BigDecimal bg1 = new BigDecimal("123.23");
BigDecimal bg2 = new BigDecimal("12323");
bg1= bg1.movePointLeft(-2); // 3 points right
bg2= bg2.movePointLeft(3); // 3 points left
System.out.println(bg1); //12323
System.out.println(bg2); //12.323
答案 2 :(得分:1)
d的值为254.999999999997。 这是浮点计算的问题。 您可以使用
i = Math.round(d);
得到255。
---删除底部..错了