将 2 位小数转换为整数
Convert 2 decimal to integer
我想在 java.
中将数字 2.55 转换为 255
我尝试了以下代码,但我得到的是 254 而不是 255:
final Double tmp = 2.55;
final Double d = tmp * 100;
final Integer i = d.intValue();
实现这个的正确方法是什么?
d的值为254.999999999997。
这是浮点计算的问题。
你可以使用
i = Math.round(d);
获得255。
--- 删除底部..错了
您必须对该值进行四舍五入,并且您可以为此使用原语..
即使用原始 double 而不是包装器 class 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
我想在 java.
中将数字 2.55 转换为 255我尝试了以下代码,但我得到的是 254 而不是 255:
final Double tmp = 2.55;
final Double d = tmp * 100;
final Integer i = d.intValue();
实现这个的正确方法是什么?
d的值为254.999999999997。 这是浮点计算的问题。 你可以使用
i = Math.round(d);
获得255。
--- 删除底部..错了
您必须对该值进行四舍五入,并且您可以为此使用原语.. 即使用原始 double 而不是包装器 class 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