如何删除字符串值中的尾随零并删除小数点
如果字符串在小数点后仅包含零,如何删除 String 值中的尾随零并删除小数点?我使用以下代码:
String string1 = Double.valueOf(a).toString()
这将删除(10.10 和 10.2270)中的尾随零,但我没有获得第 1 个和第 2 个输入的预期结果。
输入
10.0
10.00
10.10
10.2270
预期输出
10
10
10.1
10.227
如果字符串在小数点后仅包含零,如何删除 String 值中的尾随零并删除小数点?我使用以下代码:
String string1 = Double.valueOf(a).toString()
这将删除(10.10 和 10.2270)中的尾随零,但我没有获得第 1 个和第 2 个输入的预期结果。
输入
10.0
10.00
10.10
10.2270
预期输出
10
10
10.1
10.227
Java库有一个内置的类,可以做到这一点。这是大十进制
。
下面是一个用法示例:
BigDecimal number = new BigDecimal("10.2270");
System.out.println(number.stripTrailingZeros().toPlainString());
输出:
10.227
注意:使用采用 .您可能不想要需要 .BigDecimal
String
double
下面是一个方法,它将采用 a 并返回另一个数字,其中尾随零被删除,礼品包装。Collection<String>
Collection<String>
public static Collection<String> stripZeros(Collection<String> numbers) {
if (numbers == null) {
throw new NullPointerException("numbers is null");
}
ArrayList<String> value = new ArrayList<>();
for (String number : numbers) {
value.add(new BigDecimal(number).stripTrailingZeros().toPlainString());
}
return Collections.unmodifiableList(value);
}
用法示例:
ArrayList<String> input = new ArrayList<String>() {{
add("10.0"); add("10.00"); add("10.10"); add("10.2270");
}};
Collection<String> output = stripZeros(input);
System.out.println(output);
输出:
[10, 10, 10.1, 10.227]
尝试
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String string1 = decimalFormat.format(10.000);