私はこの非常に単純なコードを持っています:
#include <cstdio>
#include <cmath>
int main(int argc, const char * argv[])
{
printf("%2.21f", atan2f(0.f, -1.f));
return 0;
}
Intel CPU での次の出力:
Visual Studio 2010: 3.141592741012573200000
GCC 4.8.1 : 3.141592741012573242188
Xcode 5 : 3.141592502593994140625
Apple の atan2f のマニュアル ページを読んだ後、印刷された値は near であると予想されます。現在使用しているような特別な値3.14159265359
が返されると彼らは言っているからです。+pi
ご覧のとおり、Xcode で返される値と期待される値との差はかなり大きいです。
これは既知の問題ですか?はいの場合、これを解決するための回避策はありますか?