将十进制从sql格式化为货币c#aspx

将十进制从sql格式化为货币c#aspx,c#,sql,asp.net,C#,Sql,Asp.net,嗨,我在我的.cs文件中有这段代码,输出是100449.00,但我想把它格式化成100449.00这样的货币。这是我在标签中显示值的代码 billing.Text = "$" + ds.Tables[0].Rows[0]["Billing"].ToString(); 是的 编辑:返回的是一个对象,您需要将其转换为十进制。尝试: ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("N"); 是的 编辑:返回的是一个对象,您需要将其转换为十进

嗨,我在我的.cs文件中有这段代码,输出是100449.00,但我想把它格式化成100449.00这样的货币。这是我在标签中显示值的代码

billing.Text = "$" + ds.Tables[0].Rows[0]["Billing"].ToString();
是的

编辑:返回的是一个
对象
,您需要将其转换为十进制。尝试:

((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("N");
是的

编辑:返回的是一个
对象
,您需要将其转换为十进制。尝试:

((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("N");

来自
DataTable
要求我们在格式化为文本之前转换为不可为空的类型

实际上,我们有几种不同的方式来进行格式化。您的帖子在值之前有一个硬编码的美元符号,在这种情况下,我们可以使用F2N2格式字符串为我们提供一个右2位的小数点,并将其附加到您的美元符号中:

billing.Text = "$" +  ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("F2");
// 123456.7890 will display as $123456.78

billing.Text = "$" +  ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("N2");
// 123456.7890 will display as $123,456.78
另一种选择是使用C格式,该格式将为我们添加特定文化的货币符号和数字格式(小数点、逗号)


来自
DataTable
要求我们在格式化为文本之前转换为不可为空的类型

实际上,我们有几种不同的方式来进行格式化。您的帖子在值之前有一个硬编码的美元符号,在这种情况下,我们可以使用F2N2格式字符串为我们提供一个右2位的小数点,并将其附加到您的美元符号中:

billing.Text = "$" +  ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("F2");
// 123456.7890 will display as $123456.78

billing.Text = "$" +  ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("N2");
// 123456.7890 will display as $123,456.78
另一种选择是使用C格式,该格式将为我们添加特定文化的货币符号和数字格式(小数点、逗号)



OP要求打印100449.00之类的内容,这会打印$100449.00。我得到以下错误:方法“ToString”没有重载接受“1”arguments@ytoledano我给了op他们想要的,而不是他们要求的。@ytoledano op在行首硬编码了美元符号。但是,您不能从带有格式说明符的对象
[“billing”].ToString()
,因为它是一个可为空的未知格式类型,如果要打印出类似100449.00的内容,这将打印$100449.00。我收到此错误:“ToString”方法没有重载,它接受“1”arguments@ytoledano我给了op他们想要的,“不是他们要求的。”伊托莱达诺OP在行首硬编码了美元符号。但是,您不能从带有格式说明符的对象
[“billing”]。ToString()
,因为它是未知格式类型的可空对象。我收到此错误:方法“ToString”没有重载接受“1”arguments@ParbhuBissessar您确定您的值是十进制的吗?似乎不是……我肯定是的。@ParbhuBissessar这让人感到奇怪,因为文档清楚地说明了这种重载的存在。
[]
运算符返回的是一个对象,因此需要转换为十进制。请查看我的上一次编辑。我收到此错误:方法“ToString”没有重载接受“1”arguments@ParbhuBissessar您确定您的值是十进制的吗?似乎不是……我肯定是的。@ParbhuBissessar这让人感到奇怪,因为文档清楚地说明了这种重载的存在。
[]
运算符返回的是一个对象,因此需要转换为十进制。请看我最后一次编辑。
billing.Text = ((decimal)ds.Tables[0].Rows[0]["Billing"]).ToString("C");
// 123456.7890 will display as
//    $123,456.78   en-US
//    123 456.78€   fr-FR
// you could also add a second overload to the ToString to specify