我正在查詢返回貨幣值的數據庫字段,我將其分配給一個字符串,但它在結尾處添加了額外的00。將C#貨幣轉換爲字符串
例如查詢返回30.00
我給你這一個字符串(string value = Convert.ToString(ReturnValue);
) 但是當我將它輸出,它顯示爲30.0000
你能告訴我,我要去哪裏錯了,並以接近這一點的最好方法是什麼?
我正在查詢返回貨幣值的數據庫字段,我將其分配給一個字符串,但它在結尾處添加了額外的00。將C#貨幣轉換爲字符串
例如查詢返回30.00
我給你這一個字符串(string value = Convert.ToString(ReturnValue);
) 但是當我將它輸出,它顯示爲30.0000
你能告訴我,我要去哪裏錯了,並以接近這一點的最好方法是什麼?
您可以在ToString調用中使用string format codes。
試試這個:
yourValueHere.ToString("0.00")
我會使用類似
string value = ReturnValue.ToString("0.00");
它使用一個接受格式字符串的ToString重載。 上述格式字符串「0.00」指定了兩位小數。
你想要使用貨幣字符格式化你的字符串嗎?
如果是這樣......
decimal m = 3.4;
string s = string.Format("{0:c}", m);
// s will be £3.40, $3.40, etc depending on your locale settings
在SQLServer的貨幣數據類型是精確小數點後4位小數的等價物。我會假設這是精度保存時小數轉換爲字符串。最好的選擇是在轉換時總是使用格式字符串,例如「#,## 0.00」。
Money數據類型的精度爲4位小數。您需要在ToString()參數中指定格式,或者您可以在轉換爲字符串之前舍入值。
如果你使用.ToString(),你不會得到任何舍入,據我所知。我認爲你只是輸了數字。
如果你四捨五入,你不只是切斷數字。這裏有一個四捨五入(未經測試的代碼)的例子:
string value = Math.Round(ReturnValue, 2).ToString();
MartGriff,
我最好的建議是使用SqlMoney類型將其轉換爲一個雙。從那裏,你可以輸出它,但你想!
下面是一個例子:
System.Data.SqlTypes.SqlMoney ReturnValue;
//Set your returnValue with your SQL statement
ReturnValue = ExecuteMySqlStatement();
//Get the format you want
//$30.00
string currencyFormat = ReturnValue.ToDouble().ToString("c");
//30.00
string otherFormat = ReturnValue.ToDouble().ToString("0.00");
更多格式選項,請查看MSDN:
http://msdn.microsoft.com/en-us/library/system.double.tostring.aspx
祝你好運,我希望這有助於。
我目前正在開發一個使用VS 2013社區版的boatdock網絡系統。我試圖弄清楚如何將貨幣值輸出到文本框中。
,我所用的是該方法
fieldName.Text = decimalValue.ToString( 「C」);
它完美的作品。
什麼是從數據庫中獲取的變量的.NET類型(在轉換爲字符串之前)? – 2009-03-03 23:38:00
OP可以使用字符串格式代碼,這就是他們在那裏。 – 2009-03-03 23:46:46