如何舍入浮点值,使小数点后不应包含0

时间:2015-05-22 12:27:42

标签: java double rounding

如果值如下,则如何舍入浮点值:

例如:

  • 1.0 ==>那么它应该返回1
  • 2.0 ==>那么它应该返回2

但如果值如下:

  • 1.2 ==>那么它应该返回1.2

  • 1.90 ==>然后它应该返回1.9

我试图完善它并尝试不同的解决方案,但这对我没有用。

2 个答案:

答案 0 :(得分:2)

您可以创建像这样的辅助函数

 static public void Normalize(String pattern, double value ) {
    DecimalFormat formatter = new DecimalFormat(pattern);
    String normalizedValue = formatter.format(value);
    System.out.println(normalizedValue);
    }

Normalize("0.#####",2.40); // 2.4
Normalize("0.#####",2.0); // 2

这对我有用。

答案 1 :(得分:0)

您在这里谈论的是显示问题。 1.0中的“0”表示数字的准确程度,如果您只显示1,那么阅读的人不知道该值的准确程度(与1.1,1.9甚至1.0003相比)。

我的建议是将你的答案转换为字符串并检查最后一个值是否为“0”,如果是,则将其删除以用于显示目的(或其他一些格式化解决方案)。

注意:我不建议这样做,因为它会改变值的含义。