gpt4 book ai didi

c++ -/fp :fast vs :fp:precise what kind of errors can I encounter?

转载 作者:搜寻专家 更新时间:2023-10-31 00:03:03 25 4
gpt4 key购买 nike

我想知道如果我设置/fp:fast 而不是 fp:precise 会遇到什么样的错误?我在 MSV10 下工作

我对最大位数为 8 的 double 执行/,*,+,- 运算,例如 1.4379294(货币汇率)。

最佳答案

double 计算总是会遇到同样的错误:在将结果转换为十进制后,您永远不会得到超过 15 位有效数字,其余只是随机噪声数字。/fp:fast 和/fp:precise 之间的区别在于这些噪声数字会发生什么。

/fp:precise 选项解决了 x86 FPU 的一个问题,它将中间结果以 80 位精度存储在 FPU 寄存器中。如果中间值保存在寄存器中,这可能会导致细微不同的噪声数字值。使用/fp:precise,代码生成器被迫将这些值刷新回内存,将它们截断回 64 位。这很慢,但确实会产生更一致的噪音。如果您犯了在没有 epsilon 的情况下比较浮点值是否相等的错误,这很重要。

对于大多数会计师来说,使用一个用 10 个手指而不是 2 个手指计数的数学库是一个常见的解决方案。它通过消除将数字从 10 进制转换为 2 进制时生成的数字来解决噪声数字问题。代码会很慢,比/fp:precise 慢得多,因为所有计算都是在没​​有硬件加速的情况下在软件中进行的。但在会计应用程序中通常不是问题。

关于c++ -/fp :fast vs :fp:precise what kind of errors can I encounter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889522/

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