将C#货币转换为字符串
我正在查询返回货币值的数据库字段,我将其分配给一个字符串,但它在结尾处添加了额外的00。将C#货币转换为字符串
例如查询返回30.00
我给你这一个字符串(string value = Convert.ToString(ReturnValue);
) 但是当我将它输出,它显示为30.0000
你能告诉我,我要去哪里错了,并以接近这一点的最好方法是什么?
试试这个:
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