2013-08-12 38 views
3

我正在爲類型money獲取sql異常(算術溢出錯誤)。如何在c#中設置貨幣的最小值和最大值。我的sql類型是金錢和C#數據類型是雙重的。 (922,337,203,685,477.5808)至(922,337,203,685,477.5807)。類型貨幣的算術溢出錯誤

+1

相關:http://stackoverflow.com/questions/693372/what-is-the-best-data-type-to-use-for-money-in-c,http://stackoverflow.com/questions/1008826/what-data-type-should-i-use-to-represent-money-in-c – Chris

+1

在c#中使用十進制代碼 – Sergio

+1

將'money'映射到'double' - 肯定是'decimal'是個壞主意會是更好的選擇? –

回答

0

請勿在C#中對貨幣表示使用兩用小數。

1

您應該使用decimal進行資金操作。 Decimal - 這是您在操縱資金時需要的特定類型。因此,如果對您而言重要的是要有精確的結果 - 請使用它。否則 - 雙罰款。


(System.Double)±5.0×10-324到±1.7×10308與15個或16顯著附圖
小數(System.Decimal)±1.0×10 28至±7.9×1028,28或29位有效數字

0

改爲使用decimal;如果你特別想設置最小值/最大值,則:

const decimal Min = -922337203685477.5808M, Max = 922337203685477.5807M; 

個人而言,我會建議與最小/最大太多的混亂,雖然。在這些情況下,A null可能比實際值更清楚。

另外,有System.Data.SqlTypes.SqlMoney類型,其中有MinValueMaxValue - 我個人倒儘量避免泄漏的實現細節(如SqlMoney)到您的域模型,雖然。

相關問題