我正在使用 DecimalFormat
,我希望能够以给定的精度读写小数(我正在转换为 BigDecimal
)。
本质上,我想要一个DecimalFormat
,它强制执行以下模式“\d+(\.\d+)?”即“至少一位数字,然后可选地,小数分隔符后跟至少一位数字”。
我正在努力使用 DecimalFormat
来实现这一点,我已经尝试了几种模式,但它们似乎强制执行固定位数。
我也对实现这一目标的其他方式持开放态度。
编辑:
关于更多背景知识,我正在解析用户提供的数据,其中小数可以以任何方式格式化,并且可能不是区域设置格式。我希望让他们提供一个十进制格式的字符串,我可以使用它来解析数据。
最佳答案
由于您在评论中指出您需要语言环境支持:
Locale locale = //get this from somewhere else
DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(new DecimalFormatSymbols(locale));
df.setMaximumFractionDigits(Integer.MAX_VALUE);
df.setMinimumFractionDigits(1);
df.setParseBigDecimal(true);
然后解析。
关于Java 十进制格式 - 与给定的一样多的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465019/