gpt4 book ai didi

c++ - 多行数学结果不同于单行

转载 作者:可可西里 更新时间:2023-11-01 18:27:48 26 4
gpt4 key购买 nike

我遇到了一些 float 学的问题,我发现如果我在一行上做数学,我得到 -0 传递给 tan(),如果我在两行上做,我得到 0传递给 tan()。看看:

float theta = PI / 2.f;
float p = (PI / 2.f) - theta;
float result = tan(p);

以上,p = -0,result = -4.37...

float theta = PI / 2.f;
float p = PI / 2.f;
p -= theta;
float result = tan(p);

以上,p = 0,result = 0。

谁能解释一下区别?我假设 -0 是由 tan() 引起的结果,尽管我在谷歌上找不到任何解释原因的内容。为什么完全相同的计算分布在不同的行中会导致不同的答案?

谢谢

最佳答案

可能是因为PI的类型

如果你使用 double 它会变成 float 然后结果将如您所代表的那样。

但是如果 PI 是float,这两个测试场景是相同的。

关于c++ - 多行数学结果不同于单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53955083/

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