問題タブ [nan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1809 参照

nan - Borland C ++でNaNを使用して番号を初期化するにはどうすればよいですか?

Borland C ++でNaNを使用して番号を初期化するにはどうすればよいですか?

複製:C ++でNaNを使用していますか?

0 投票する
11 に答える
61579 参照

floating-point - IEEE754 NaN値に対してfalseを返すすべての比較の理由は何ですか?

NaN値の比較が他のすべての値と異なる動作をするのはなぜですか?つまり、一方または両方の値がNaNである演算子==、<=、> =、<、>とのすべての比較は、他のすべての値の動作とは異なり、falseを返します。

これにより数値計算が何らかの形で単純化されると思いますが、他の設計上の決定について詳細に説明しているKahanによるIEEE 754のステータスに関する講義ノートでも、明確に述べられた理由を見つけることができませんでした。

この逸脱した動作は、単純なデータ処理を行うときに問題を引き起こします。たとえば、Cプログラムの実数値フィールドでレコードのリストを並べ替える場合、NaNを最大要素として処理するための追加のコードを記述する必要があります。そうしないと、並べ替えアルゴリズムが混乱する可能性があります。

編集: これまでの答えはすべて、NaNを比較することは無意味であると主張しています。

私は同意しますが、それは正解が間違っていることを意味するのではなく、幸いにも存在しないNot-a-Boolean(NaB)になります。

したがって、比較のためにtrueまたはfalseを返すという選択は、私の見解では恣意的であり、一般的なデータ処理では、データ構造を避けるために、通常の法則(==の再帰性、<、==、>の三分法)に従った場合に有利です。これらの法律に依存しているものは混乱します。

だから私は、哲学的な推論だけでなく、これらの法律を破ることのいくつかの具体的な利点を求めています。

編集2: NaNを最大にすることがなぜ悪い考えであるかを理解したと思います。それは、上限の計算を台無しにするでしょう。

NaN!= NaNは、次のようなループでの収束の検出を回避するために望ましい場合があります。

ただし、これは絶対差を小さな制限と比較することによって記述したほうがよいでしょう。したがって、私見では、これはNaNでの再帰性を破るための比較的弱い議論です。

0 投票する
3 に答える
58712 参照

matlab - 配列内のすべての NaN 要素を見つける

配列内のすべてのNaN (Not-a-Number) 要素を検索できる MATLAB のコマンドはありますか?

0 投票する
3 に答える
7081 参照

jqgrid - jqGrid セルで NaN の場合は空白

jqGridセルでNaNの代わりに空白を設定するには? フォーマッタを使用していますか? 例はありますか?

0 投票する
3 に答える
2064 参照

.net - Assert.AreEqual(1.0、double.NaN、1.0)が合格するのはなぜですか?

短い質問、なぜAssert.AreEqual(1.0, double.NaN, 1.0)合格するのですか?一方、Assert.AreEqual(1.0, double.NaN)失敗します。

これはMSTest(Microsoft.VisualStudio.QualityTools.UnitTestFramework)のバグですか、それともここに何かが欠けていますか?

よろしく、エギル。


更新:おそらく、私の質問の背後にある理由は、NaNまたは(+/-)Infinityである線形代数行列演算の結果のために残念ながら合格した単体テストがたくさんあることです。単体テストは問題ありませんが、実際のまたは/および期待されるがNaNまたはInfinityの場合、デルタを含むdoubleのAssert.AreEqualは合格するため、テストしたコードは正しいと信じられました。

0 投票する
3 に答える
1366 参照

java - Java の NaN 問題

4 バイトを float に変換していますNaNが、結果として取得していますが、値が必要です0.0。私は何を間違っていますか?

これは私のコードです:

0 投票する
3 に答える
1699 参照

c++ - NaN または infs で中断する

NaN は計算のどの段階でも発生し、それ自体が伝播する可能性があるため、その発生源を見つけるのは困難な場合がよくあります。では、計算が NaN または inf を返したときに C++ プログラムを停止させることは可能ですか? 私の意見では、素敵なエラーメッセージでクラッシュするのが最善です:

このようなことは可能ですか?より良い解決策はありますか?NaN の問題をどのようにデバッグしますか?

編集: 精度: Linux で GCC を使用しています。

0 投票する
1 に答える
1053 参照

java - Java MDSJ が NaN を生成する

誰でもMDSJの経験がありますか? 次の入力では NaN の結果しか生成されず、その理由がわかりません。ドキュメントはかなりまばらです。

これは出力です:

MDS の使い方が間違っているのかもしれません。長さ 13 インチの各部分配列はinput1 つのオブジェクトを表すことを意図していますが、MDSJ は 13 ポイントを返しています。

次の入力でも失敗します。

編集:間違った使い方をしているようです。私はそれに次のような入力を与えていました:

しかし、実際に必要なのは次のような距離行列です。

ただし、この入力の場合:

私はこの結果を得ます:

しかし、距離の配列が必要な場合、そもそも MDS を使用する意味は何ですか? 属性の配列を座標に煮詰めるはずだと思っていました。

0 投票する
4 に答える
9955 参照

javascript - Javascript で、配列を追加するときに NaN を回避する方法

私はjavascriptで2つの配列の値を追加しようとしています. [1,2,1] + [3,2,3,4]

答えは 4,4,4,4 のはずですが、最初の配列の長さを 4 に変更すると、4,4,4 または 4,4,4,NaN になります。

4 番目の数値が 1 番目の配列にある必要があることはわかっていますが、数値がない場合に未定義ではなく 0 にするように JavaScript に指示する方法がわかりません。

0 投票する
9 に答える
157456 参照

c - Cでnanとinfを使用するには?

エラーが発生した場合に nan または inf を返すことができる数値メソッドがあります。テスト目的で、状況が正しく処理されていることを確認するために、一時的に nan または inf を返すように強制したいと思います。Cでnanとinfの値を作成する信頼できるコンパイラに依存しない方法はありますか?

約10分間グーグルした後、コンパイラに依存するソリューションしか見つけることができませんでした。