首页 > 解决方案 > Java 删除尾随 0

问题描述

我想知道如何从我的 java 程序中的整数中删除尾随 0 例如:100.0 -> 100 但是,对于像 1285.71 这样的数字保持不变。

我只需要删除整数中的尾随 0,同时仍保留双精度值。我试过了:

    double s = x / y;
    String pattern = "0.#";

    DecimalFormat decimalFormat = new DecimalFormat(pattern);
    System.out.println(decimalFormat.format(Double.valueOf(s)) );

但是,它不起作用,我仍然在整数(100.0)之后得到烦人的 0 任何帮助或见解将不胜感激,为您的时间欢呼。

标签: javatrailing

解决方案


因为您使用DecimalFormat来表示您的数字,所以关于该模式有几点需要记住:

  • 0– 如果提供,则打印一个数字,否则为 0
  • #– 如果提供,则打印一个数字,否则不打印
  • .– 指示放置小数点分隔符的位置
  • ,– 指示在哪里放置分组分隔符

整数部分永远不会被丢弃。如果您提供这样的模式:"0.#",那么它将输出前缀和后缀中的第一个数字(如果它不为零)。例如,12345.5 将输出相同,但 12345.0 将输出 12345。

如果您在后缀后的数字超过您提供的后缀模式的数量,那么这些数字将被丢弃,例如您的模式是0.#"并且您的输入是 123.45,那么输出将是 123.4。

然后您可以更改您的模式以"0.##"使其适用于 100.0 和 1285.71


推荐阅读