gpt4 book ai didi

objective-c - objective-c (math.h) 中的 tan ( pi/2 ) 不是未定义的

转载 作者:可可西里 更新时间:2023-11-01 17:02:04 26 4
gpt4 key购买 nike

我写了这段测试代码:

NSLog(@"%g", tan(M_PI / 2.0));

控制台的输出是:

1.63312e+16

问题是关于近似值,对吧?是我犯了一些错误还是 ma​​th.htan 函数本身真的不能处理这种情况(返回 INFINITY)?我应该自己处理这些输入情况吗(例如:当我得到 pi/2 输入值时,我返回一条错误消息)还是有更好(更优雅)的方法来获得正确的值?

谢谢

最佳答案

因为 M_PI != real pi 因为它无法表示,所以你从 M_PI 得到的是 pi 的近似值,它的正切就是你得到的。< br/>编辑:以下内容:

printf("cos(M_PI / 2) = %.30f\nsin(M_PI / 2) = %.30f\n",
cos(M_PI / 2), sin(M_PI / 2));

将打印

cos(M_PI / 2) = 0.000000000000000061232339957368
sin(M_PI / 2) = 1.000000000000000000000000000000

这表明 cos(pi/2) 是非零的。
做除法会给

1.63312393531953E16

这正是您所得到的。

关于objective-c - objective-c (math.h) 中的 tan ( pi/2 ) 不是未定义的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458001/

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