gpt4 book ai didi

java - 是否可以在 DecimalFormat 解析中指定精确的小数位数?

转载 作者:行者123 更新时间:2023-12-02 11:12:50 25 4
gpt4 key购买 nike

我正在使用 DecimalFormat 来解析表示十进制数字的字符串。我想要的是一个解析函数,它检查字符串中小数位数的确切数量。具体来说,我想检查字符串是否恰好有两个小数位(例如,“1.10”有效,“1.1”无效)。

DecimalFormat 是否可能出现这种行为?使用以下方法构建的实例不起作用。

private static DecimalFormat decimalFormat() {
final DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setDecimalSeparator('.');
final DecimalFormat decimalFormat = new DecimalFormat("#0.00", decimalFormatSymbols);
decimalFormat.setMinimumFractionDigits(2);
decimalFormat.setParseBigDecimal(true);
return decimalFormat;
}

有什么建议吗?

最佳答案

这是有关 setMinimumIntegerDigits 的文档:https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html#setMinimumIntegerDigits-int-

newValue - the minimum number of integer digits to be shown; [...].

据我所知,这并不是一个要求,只是作为输出的格式。

查看 DecimalFormat 的可用函数,我看不到任何可以提供小数位数的函数。

但是,由于您使用的是 setParseBigDecimal(true),解析字符串会为您提供一个 BigDecimal,它使您可以访问精度 功能:https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html#precision--

因此,如果您绝对想检查解析结果(而不是字符串本身)的正确位数,我的建议是:

  • 将最小小数位设置为 0
  • 获取字符串
  • BigDecimal解析它
  • 使用BigDecima::precision函数检查位数是否正确。

希望这有帮助。

关于java - 是否可以在 DecimalFormat 解析中指定精确的小数位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50496770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com