将2位小数转换为整数

时间:2019-03-21 13:07:25

标签: java double rounding

我想在Java中将数字 2.55 转换为 255

我尝试了以下代码,但得到的是 254 而不是 255

final Double tmp = 2.55;
final Double d = tmp * 100;
final Integer i = d.intValue();

实现此目标的正确方法是什么?

3 个答案:

答案 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。

---删除底部..错了