在这个答案我推荐使用
s.replaceFirst("\\.0*$|(\\.\\d*?)0+$", "$1");
Run Code Online (Sandbox Code Playgroud)
但有两个人抱怨结果包含字符串"null",例如23.null.这可以通过$1(即group(1))存在来解释null,可以将其转换String.valueOf为字符串"null".但是,我总是得到空字符串.我的测试用例涵盖了它
assertEquals("23", removeTrailingZeros("23.00"));
Run Code Online (Sandbox Code Playgroud)
经过.确切的行为是否未定义?
我有一个字符串salePrice可以有类似的值29.90000,91.01000,我想得到输出像29.90,91.01小数点后的两位数.我正在使用一个字符串.
我想将数字格式化为最多N个小数位。这里还有另一个类似且受欢迎的问题,但这并不是我想要的。
我正在寻找这样的东西,假设我想要最大。2个地方,所以这将是:
1.00 -> "1" (not "1.00")
1.20 -> "1.2" (not "1.20")
1.23 -> "1.23"
1.234 -> "1.23"
1.235 -> "1.24"
Run Code Online (Sandbox Code Playgroud)
与另一个问题的不同之处在于,如果不需要,我不想在逗号后面加上零。
我想知道这是否可以String.format()通过Math.round(),或DecimalFormat来完成。上面显示的另一个问题提供了DecimalFormat的解决方案。
给定N作为参数,答案不必为变量。我只是以N为例。