我需要將數字截斷爲2個小數位,這基本上意味着 會截斷多餘的數字。將數字截斷爲指定的小數位
如:
2.919 -> 2.91
2.91111 -> 2.91
爲什麼?這是SQL服務器在存儲一定數量的特定精度時正在執行的操作。例如,如果列是十進制(8,2),並且您嘗試 插入/更新9.1234的數字,則3和4將被截斷。
我需要在c#代碼中完成同樣的事情。
,我能想到這樣做的唯一可行方法之一:
使用stringformatter「打印」出來只有 小數點後兩位,然後將其轉換爲十進制, 如:
decimal tooManyDigits = 2.1345 decimal ShorterDigits = Convert.ToDecimal(tooManyDigits.ToString("0.##")); // ShorterDigits is now 2.13
我不是很滿意這一點,因爲它涉及到字符串,然後 另一個字符串轉換成十進制這似乎有點瘋狂。
使用Math.Truncate(只接受的整數),所以我 可以乘以100它,截斷,然後乘以100除以例如:
decimal tooLongDecimal = 2.1235; tooLongDecimal = Math.Truncate(tooLongDecimal * 100)/100;
我也不滿意這是因爲如果tooLongDecimal是0, 我會得到除以0的錯誤。
當然有更好的+更簡單的方法!有什麼建議麼?
'0/100'不通過0錯誤分頻。它是'0',這是你所期望的。 – xbonez
(0 * 100)/ 100 = 0 –
@sehe truncate!= round –