1/0の演算が実行されたときのように、double(または整数)が無限大であるかどうかをテストする方法は誰にも分かりますか?inf-objective cのチェック
isfinite(n)は機能していないようです。
あなたが確認できる1/0の演算が実行されたときのように、double(または整数)が無限大であるかどうかをテストする方法は誰にも分かりますか?inf-objective cのチェック
isfinite(n)は機能していないようです。
あなたが確認できる<のmath.h >は、その引数のサイズを確認してからタイプのために適切な__isinf
関数を呼び出すために定義されたマクロ、isinf
を、持っている:
#define isinf(x) \
( sizeof (x) == sizeof(float) ? __isinff((float)(x)) \
: sizeof (x) == sizeof(double) ? __isinfd((double)(x)) \
: __isinf ((long double)(x)))
マクロをarchitecture/i386/math.hとarchitecture/arm/math.hで同じです。関数そのものの実装自体はおそらく異なります。
あなたがそのようなことに遭遇することが起こるはずです。これは、負の無限大のための真のと同様に、正戻ります:
2011-10-26 18:41:53.424 ToInfinityEtc [30197:903]確かにそうです!
2011-10-26 18:41:53.426 ToInfinityEtc [30197:903]
しかし、isinfはGNUコンパイラ専用です。 llvmと互換性がありません。 xcodeは、 "undeclerated identifier isinfの使用"と言っていますが、フラグ+クリックでcmath.Nにナビゲートしてmath.hを手動でインポートしました。引き続きcmathにナビゲートし、このエラー「undeclerated identifier isinfの使用」のためにyesをコンパイルできません。最後に、isinfの代わりにstd :: isinfを置き換えました。 –
math.hと 'isinf()' [両方ともPOSIX標準の一部です](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html)、@ N。ラモス。彼らはGCCとは関係がありません。どこか別の問題があります。 –
整数は無限にすることはできません。 –
'x * 2 == x && x!= 0'かそのようなものをテストできます... NaNの場合、' x!= x'をテストできます。 –
"isfinite()がうまく動作していない"という意味を明確にすることはできますか? " –