2017-02-23 103 views
1

我們在數據庫中存儲貨幣/貨幣數量,例如小數點後的四位數字。 12.8665將用戶的十進制輸入與c#十進制數進行比較

可以說我有在C#中Order類具有兩個屬性:

decimal TotalAmountDue; 
decimal UserInput. 

所有網頁上的金額是一樣totalAmountDue.toFixed(2)顯示。這意味着12.87顯示給用戶。用戶在Web窗體上輸入數字12.87。當我在c#UserInput >= TotalAmountDue中比較時,它當然不會返回true,因爲在c#中沒有執行等效於toFixed的轉換。

Q1。這個轉換怎麼做才能比較兩位小數? Q2302。這是一個壞主意,因爲我們只向用戶顯示2,所以在小數點後面存儲4位數字?

回答

0

利用

Math.Round(yourValue, 2, MidpointRounding.AwayFromZero) 

,除非貨幣。

如果你只需要2位小數,爲什麼存儲更多。除非貨幣。

+0

謝謝。這些數額基本上是價格。 MidpointRounding.AwayFromZero是什麼意思? – Iffi

+0

這是你通常如何收集的。有關更多信息,請參閱https://msdn.microsoft.com/en-us/library/system.midpointrounding(v=vs.110).aspx。 –

0

你可以簡單的一輪十進制兩位數與

Math.Round(fourDigitDecimal, 2) 

事後與兩位小數進行比較。

相關問題