gpt4 book ai didi

java - 在 Java 中格式化小数位

转载 作者:行者123 更新时间:2023-12-01 17:33:32 25 4
gpt4 key购买 nike

我正在尝试在 Java 中将 double 型格式化为仅 2 位小数。

我读过以下帖子: How to round a number to n decimal places in Java

出于某种原因,这些方法中的每一种都无法对我拥有的某些数字起作用。

例如:

DecimalFormat df = new DecimalFormat("#.##");
normalizedValue = Double.valueOf(df.format(normalizedValue));

如果我打印 normalizedValue 我会得到类似于以下内容的结果:

-78.64000000000001

18.97

59.469999999999985

-63.120000000000005

(注意:有些格式正确...有些格式不正确)

所以,这些方法似乎四舍五入,但我需要一些可以删除小数点后两位小数的东西......有什么建议吗?

谢谢。

最佳答案

在您的示例中,DecimalFormat.format(...) 给出的字符串表示确实只有 2 位数字。但是,一旦您将其重新转换为双倍,就会出现准确性问题。当您尝试表示“exakt”十进制分数时,像 double 这样的二进制基本格式总是会显示出这样的效果。您可以更改为 BigDecimal 以消除此类影响。

关于java - 在 Java 中格式化小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8634395/

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