我想知道如何在我的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)) );然而,不工作,我仍然得到恼人的0后的整数(100.0)任何帮助或见解将非常感谢,为您的时间干杯。
发布于 2020-04-11 17:47:03
因为您使用DecimalFormat来表示您的数字,所以关于模式有几点需要记住:
0 -打印数字(如果提供),0 otherwise# -打印数字(如果提供),nothing otherwise. -指示放置小数的位置separator, -指示放置分组分隔符的位置整数部分永远不会被丢弃。如果您提供这样的模式:"0.#",那么它将输出前缀和后缀中的第一个数字(如果它不是零)。例如,12345.5将输出相同的值,但12345.0将输出12345。
如果您的后缀后面的数字超过了您提供的后缀模式的数量,那么这些数字将被丢弃,例如您的模式是0.#",您的输入是123.45,那么输出将是123.4。
然后,您可以将您的模式更改为"0.##",以使其同时适用于100.0和1285.71
https://stackoverflow.com/questions/61153095
复制相似问题