簡體   English   中英

將十進制轉換為特定格式的十進制?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM