An error of 1ppm 甚至更糟-6ren">
gpt4 book ai didi

java - 字符串到 float 在java中不起作用?

转载 作者:行者123 更新时间:2023-12-01 22:18:29 27 4
gpt4 key购买 nike

问题很简单:

float f1 = Float.parseFloat("41.975779") 
//Value for f1 is 41.97578 -> An error of 1ppm

甚至更糟!!

float f2 = Float.parseFloat("41.975645") 
//Value for f2 is 41.975643 -> An error of 2ppm

无论我使用 Float.parseFloat 还是 Float.valueOf,它们都会给出相同的结果。

注意:这个问题是我在android中编程时出现的,我没有在纯java中尝试过,但我认为会得到相同的结果。

最佳答案

您的字符串到浮点转换的工作方式完全如宣传的那样,尽管显然不完全符合您的预期:-)

IEEE754 单精度浮点值(如 float 中使用的)的精度仅为大约七位十进制数字。

如果您想要更高的精度,请使用 double,它提供大约 15 位十进制数字,或者切换到 BigDecimal 以获得任意精度。

请注意,没有任何编码方案可以给您无限精度,总会有一些值无法表示(除非您切换到符号表示当然)。

关于java - 字符串到 float 在java中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30461495/

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