質問

私は、次のコードを持っている...

if (Price_Foreign != Double.NaN)
{
   output.Append(spacer);
   output.Append(String.Format("{0,-10:C} USD",Price_Foreign));
}

出力する。

NaN USD

与えますか?

私は値が存在しないことを示すためにDouble.NaNを使用していて、出力すべきではない。

役に立ちましたか?

解決

おそらく、あなたはIsNaN静的関数を探している?

このような何かを試してみてください。

if (!Double.IsNaN(Price_Foreign))
{
   output.Append(spacer);
   output.Append(String.Format("{0,-10:C} USD",Price_Foreign));
}

他のヒント

意志のいつものNaNとNaNを比較することを述べての

IEEE 754浮動小数点標準のfalseを返します。あなたがこれを行う必要がある場合は、Double.isNaN()を使用します。

しかし、これはあなたが何をしようとして行うための最善の方法ではありません。ダブルスは正確ではありません、あなたはここに価格を表現するためにそれらを使用しています。私はいくつかの点で、あなたも、平等のための価格を比較したいとしていることを賭けています。 あなたが「できているから、仕事に行くのではないですT浮動小数点平等のに依存しています。

あなたは本当にこれらの値のいくつかの整数型を使用して(つまり、等価比較をサポートしている)のではなくダブルスを使用しようとしているになっているはずです。ダブルスは、科学的な問題のためのものです。外ファイナンスのためます。

背景情報として:IsNaN()メソッドが何をするかreturn v != v;です。

Double.NaNはないとしても、それ自体は何も、と同じではありません。

Double.NaNフィールドを<参照してください。 /> .NET Frameworkクラスライブラリのドキュメントでます:

  

ISNAN のに使用します値かどうかを判断します   数ではありません。それはすることはできません   値がないかどうかを判断します   別のそれを比較することにより、数   NaNに等しい値

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top