我想在java中将数字2.55转换为255。
我尝试了以下代码,但我得到的是254而不是255:
final Double tmp = 2.55;
final Double d = tmp * 100;
final Integer i = d.intValue();
实现这一目标的正确方法是什么?
你必须舍入该值,并且可以使用原语...即使用原始double而不是包装类Double
final double tmp = 2.55;
final double d = tmp * 100;
long i = Math.round(d);
System.out.println("round: "+ i);
使用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
d的值是254.999999999997。这是浮点计算的问题。你可以用
i = Math.round(d);
得到255。
---删除底部..错了