gpt4 book ai didi

c++ - 使用 10 除以错误的精度

转载 作者:行者123 更新时间:2023-11-30 19:52:46 25 4
gpt4 key购买 nike

我的目的是舍入一个值,但它给出了错误的输出

      float travellingEmptyDist = 2.05; 
travellingEmptyDist = round(travellingEmptyDist * 10); // gives value 21.0
travellingEmptyDist = travellingEmptyDist/ 10.0; // gives wrong value 2.09999, expecting 2.1

有什么办法可以纠正吗

最佳答案

我建议观看这个视频 Computerphile: Floating Points

它将为您提供一个非常简单的概述,说明为什么浮点本质上是不精确的,而无需涉及太多技术细节。我也有偏见,因为我喜欢数字。

您需要问自己,您真的需要额外的 0.00001 精度吗?如果您确实需要更高的精度,请使用 double 而不是 float ,但即使如此,您仍然会出现舍入错误。

如果您需要更高的精度,则必须使用第三方精度算术库。我从来没有需要过,但是GMP根据 Google 结果,似乎很受欢迎。

关于c++ - 使用 10 除以错误的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22844452/

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