gpt4 book ai didi

c - 为什么我在 C 中没有得到 tan(PI/2) = infinity

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:21 24 4
gpt4 key购买 nike

当我计算 tan(PI/2) 时,我在 c 中得到 -22877332,但 tan(Pi/2) 是无穷大。和谷歌给它作为 3060023.30695 为什么我得到不同的答案

我试过 mingw 编译器,在 google 上都给出了不同的答案

float32 Tan_f32 (float32 ValValue )
{
float32 Result_Val;

Result_Val= (tanf(ValValue));
return Result_Val;
}

在 mingw 编译器中它给出 -22877332在谷歌 3060023.30695

最佳答案

不可能将 π/2 传递给 tantanf 因为 π 是无理数,所以任何 float ,无论多么精确,至少与 π/2 略有不同。因此,tanf(ValValue) 返回某个接近 π/2 的值的正切,并且该正切很大但不是无穷大。

在用于 float 的通用格式中,IEEE-754 基本 32 位二进制 float ,最接近 π/2 的可表示数是 1.57079637050628662109375。该数字的正切值约为 −22877332.4289,float 中可表示的最接近值是 −22877332,这就是您得到的结果。因此,您的 tanf 会根据您提供的输入数字为您提供最佳结果。

关于c - 为什么我在 C 中没有得到 tan(PI/2) = infinity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54287492/

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