質問
私は、次のコードを持っている...
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を比較することを述べてののfalseを返します。あなたがこれを行う必要がある場合は、Double.isNaN()を使用します。
しかし、これはあなたが何をしようとして行うための最善の方法ではありません。ダブルスは正確ではありません、あなたはここに価格を表現するためにそれらを使用しています。私はいくつかの点で、あなたも、平等のための価格を比較したいとしていることを賭けています。 あなたが「できているから、仕事に行くのではないですT浮動小数点平等のに依存しています。
あなたは本当にこれらの値のいくつかの整数型を使用して(つまり、等価比較をサポートしている)のではなくダブルスを使用しようとしているになっているはずです。ダブルスは、科学的な問題のためのものです。外ファイナンスのためます。
背景情報として:IsNaN()
メソッドが何をするかreturn v != v;
です。
Double.NaN
はないとしても、それ自体は何も、と同じではありません。
Double.NaNフィールドを<参照してください。 /> .NET Frameworkクラスライブラリのドキュメントでます:
ISNAN のに使用します値かどうかを判断します 数ではありません。それはすることはできません 値がないかどうかを判断します 別のそれを比較することにより、数 NaNに等しい値
所属していません StackOverflow