gpt4 book ai didi

java - 几乎等于 2 补码或 BigDecimal 缩放

转载 作者:行者123 更新时间:2023-12-02 08:38:33 28 4
gpt4 key购买 nike

比较两个浮点值的更好方法是什么 - 使用 Epsilon 或带缩放的大十进制比较?

例如,您的数据范围为 0.00 - 49,999.99?

最佳答案

对于 0 到 50000 的数据范围(具有 2 个小数位),我将使用带有 epsilon 的内置类型。

这实际上取决于您如何处理这些数字。如果您只是进行加法或减法,则必须处理大量数字,以使数据范围的浮点误差累积到 0.01。

让我解释一下:假设你的 float 有 17 位有效数字。这意味着 49999.99 以内的数字的误差可能约为 0.000000000001。您必须添加大约 100 亿个数字才能使累积误差达到 1 美分。乘法和除法会更快地累积错误,但仍然需要相当长的时间。

如果您不了解其工作原理(并且性能并不是应用程序的全部和最终目的),请使用 BigDecimal 以确保安全。内置类型应该快得多。

关于java - 几乎等于 2 补码或 BigDecimal 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434548/

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