将 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