gpt4 book ai didi

java - 字符串 999999999.9999999999 四舍五入为 1,000,000,000 BigDecimal

转载 作者:行者123 更新时间:2023-11-29 05:15:43 24 4
gpt4 key购买 nike

我遇到一个问题,我的 999999999.9999999999 字符串在解析时被四舍五入为 1,000,000,000 BigDecimal。

代码:

NumberFormat format = new DecimalFormat("#.0000000000######");
format.setParseIntegerOnly(false);
Number number = format.parse(text);

结果:数字 = 1.0E9

如果我使用相同的格式将结果 BigDecimal 解析回 String:

format.format(number) results in 1,000,000,000

为什么会发生这种情况以及如何强制原始 format.parse(text) 调用不舍入?

最佳答案

除非您省略了某些代码,否则 parse 将返回一个 Double,而不是一个 BigDecimal。 (尝试 System.out.println(number.getClass()) 来检查这一点。)

如果你想要一个 BigDecimal,你必须使用 setParseBigDecimal 来告诉它返回一个 BigDecimal。 (为此,format 必须声明为 DecimalFormat。)

DecimalFormat format = new DecimalFormat("#.0000000000######");
format.setParseBigDecimal(true);
Number number = format.parse(text);

关于java - 字符串 999999999.9999999999 四舍五入为 1,000,000,000 BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26634324/

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