2011-12-14 21 views
0

私のアイテムの価格を比較する関数を作成します。 これは私の関数である:空文字列を小数点以下の関数で返します。C#

public static decimal ComparePrice(decimal Price, decimal WebsitePrice) 
    { 
     decimal ZERO_PRICE = 0.00000M; 
     if(Price == ZERO_PRICE && WebsitePrice > ZERO_PRICE){ 
      return WebsitePrice; 
     }else if(Price == ZERO_PRICE && WebsitePrice == ZERO_PRICE){ 
      return ""; 
     }else{ 
      return Price; 
     } 

    } 

両方(価格とwebsiteprice)が0.00等しい場合、それは空の文字列を返します、私は、関数が小数に設定されている間、文字列を返すことはできません知っています私はそれについて何をすべきか分かりません。誰でも助けることができますか?ありがとう。

答えて

6

、あなたが使用することができます。

+0

ありがとうございます。それはうまくいく。 – Nothing

+0

私の喜び。 :) –

1

いつでも、decimal.MinValueのように、両方ともゼロ価格の商品であることを示すものを返すことができます。

2

なぜ単純な返信をしないのですか0.0 もちろん、両方の値が0.0の場合はもちろん、0.0を返すのは意味があります。

それはあなたのアプリケーションロジックに理にかなっている場合public static decimal? ComparePrice(decimal Price, decimal WebsitePrice)

+0

umm ...もし私が0.0を返したら、戻り値= 0.0なら空の文字列を表示して私のビューで再度テストしなければなりません。すべての商品は価格= 0.0を表示するべきではないからです。 – Nothing

+0

は、anthonyとFranciscoの提案したnull可能な型の使用を検討してください。 – Tabish

2

C#は今かなり長い間nullable typesを持っていた、このようなあなたの方法を定義し、問題になっている場合にnullを返してみてくださいNullable型で、空の文字列の代わりにnullを使用します。 Like:

​​

無効にするフラグとして、Decimal.MinValueを使用することをお勧めします。 (これは実際にはあなたのロジックの中で有効な値です)

+0

+1この機能を実装する標準的な方法を使用します。 –

関連する問題