我如何创建一个总共只有七位数字的 DecimalFormat,并且让它偏向数字的左侧。
例如:1234.5678 将转换为 1234.567 1.2345678 将转换为 1.234567 1234567.8 将转换为 1234567
最佳答案
DecimalFormat 不能做你想做的事,但我认为这更像是一个字符串问题。获得格式化的小数后,您可以执行以下操作:
String number = "123.45678"; // output from decimal format
number = number.substring(0, 7 + (number.contains(".") ? 1 : 0)).replaceAll("\\.$", "");
如果找到小数点,这会将字符串长度截断为 7 或 8(然后删除所有尾随小数点),这正是您所需要的。
这是一些测试代码:
private static String format(String number) {
return number.substring(0, 7 + (number.contains(".") ? 1 : 0)).replaceAll("\\.$", "");
}
public static void main(String[] args) {
System.out.println(format("1234567"));
System.out.println(format("1.2345678"));
System.out.println(format("1234.5678"));
System.out.println(format("1234567.8"));
System.out.println(format(".12345678"));
}
输出:
1234567
1.234567
1234.567
1234567
.1234567
关于java - Java DecimalFormat 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127413/