Java 十进制格式 - 与给定的一样多的精度

标签 java parsing format decimal

我正在使用 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/

相关文章:

c - 从标准输入读取输入直到空行

javascript - 带有隐含小数点的 Angular 场

java - 填充异常: Given final block not properly padded

java - 添加 androidx.room :room-compiler:2. 1.0-alpha05 后项目未编译

Javascript:按数组的第一个字符排序

c++ - 将输出文本格式化为 .doc/.docx

java - Eclipse 自动格式化变量初始化

java - 变量未根据另一个变量的更改进行更新

java - apollo-android 不提供请求中的变量

javascript - 简单的递归下降解析器?