2010-08-13 63 views
2

直到現在,從來沒有必要這樣做。如何比較小數與硬編碼值?

努力確保chargeAmount(這是十進制的類型)不低於1分:

if (chargeAmount < 0.01) 
       throw new ArgumentOutOfRangeException("chargeAmount"); 

我試圖0.01D但很明顯,我不知道你如何格式化這個。

+0

和我曾試圖中號 – PositiveGuy 2010-08-13 16:34:50

+0

我已經編輯您的標題,因爲它沒有代表你的問題。 – Stijn 2017-09-04 16:23:06

回答

12

你的意思是你希望它是一個十進制文字而不是雙倍?

if (chargeAmount < 0.01m) 
+0

啊廢話。我試過0.0M不是m(現在是時候讓我感到羞恥) – PositiveGuy 2010-08-13 16:32:21

+0

嗯,M也應該工作。也許你在嘗試一個錯誤時引入了一個錯字(沒有比那些打錯了這個錯誤實際上正確的錯字更糟糕的錯字)。 – 2010-08-13 16:35:28

3

一個decimal literal不使用D(這對Double) - 它使用M(費錢):

if (chargeAmount < 0.01M) 
    throw new ArgumentOutOfRangeException("chargeAmount"); 
+0

大聲笑,你做了我所做的,它的小寫字母:) :) – PositiveGuy 2010-08-13 16:33:17

+2

@CoffeeAddict - 不是這樣。從MSDN頁面:'如果您想將數字實數字面值視爲十進制數,請使用後綴m或M' – Oded 2010-08-13 16:35:36