我想知道如何在我的java程序中删除整数中的尾随0 例如: 100.0 -> 100 然而,对于像这样的数字 1285.71 保持不变。
我只需要删除整数中的尾随 0,同时仍然保留 double 值。 我试过:
double s = x / y;
String pattern = "0.#";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
System.out.println(decimalFormat.format(Double.valueOf(s)) );
但是,不起作用,我仍然在整数(100.0)后得到烦人的 0 任何帮助或见解将不胜感激,为您的时间干杯。
最佳答案
因为您正在使用DecimalFormat为了表示您的数字,那么需要记住有关该模式的几点:
0
– 如果提供则打印一个数字,否则打印 0#
– 如果提供则打印一个数字,否则不打印.
– 指示放置小数点分隔符的位置,
– 指示放置分组分隔符的位置
整数部分永远不会被丢弃。如果您提供这样的模式:"0.#"
,那么它将输出前缀和后缀中的第一个数字(如果它不为零)。例如,12345.5 将输出相同的内容,但 12345.0 将输出 12345。
如果您的后缀后面的数字超过您提供的后缀模式的数量,那么这些数字将被丢弃,例如您的模式是 0.#"
并且您的输入是 123.45 那么输出将为 123.4。
然后您可以将模式更改为“0.##”
,使其适用于 100.0 和 1285.71
关于Java 删除尾随 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61153095/