[英]Convert Decimal to decimal of a particular format?
嘗試執行存儲過程時出現錯誤。
C#屬性-我無法更改:
private decimal? a;
public decimal? A
{
get { return a; }
set { a = value; }
}
我可以更改的C#DAC層:
if (A.HasValue)
dict.Add("A", A.Value);
else
dict.Add("A", null);
在存儲過程輸入->我無法更改
@A decimal(6,0)
在沒有異常和數據丟失的情況下進行轉換的最佳方法是什么? 我需要對@B decimal(8,2)
做同樣的事情
數據庫列接受上述格式的null和十進制。
我得到的錯誤:
將數據類型數字轉換為十進制時出錯
從未提到您正在使用哪種語言版本,因此我將假設使用C#6。您可以刪除if / else語句,而只使用一個語句dict.Add("A", A?.Value)
。 這是一個空條件運算符: https : //msdn.microsoft.com/zh-cn/library/dn986595.aspx 。
至於如何轉換而不丟失數據...這通常是不可能的。 如果您有一個精度為3位數字的數字,並且希望精度為2位數字,則與該數字相關聯的舍入表示這意味着數字總是會有些許偏差。 如果要將數字從3個小數位轉換為2個小數位,只需使用適當的格式說明符將值放入string.Format()
中即可。 如果您想要一個沒有精度的數字(整數),只需將您的十進制數存儲在整數類型int myWholeNumber = myDecimal;
或轉換(可能更安全) int myWholeNumber = decimal.ConvertToInt32(myDecimal);
要將字符串轉換為十進制,只需使用parse方法。 decimal myDecimal = decimal.Parse(myStringDecimalValue);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.