从sql格式化十进制到c#aspx

时间:2017-04-28 18:51:50

标签: c# sql asp.net

您好我的.cs文件中有此代码,输出为100449.00,但我想将其格式化为100,449.00这样的钱。这是我的代码,用于显示标签中的值。

var number = req.body.phone;
    number = number.replace('~.*(\d{3})[^\d]{0,7}(\d{3})[^\d]{0,7}(\d{4}).*~', '$1$2$3');

3 个答案:

答案 0 :(得分:2)

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

this

编辑:返回的内容是object,您需要将其转换为小数。尝试:

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

答案 1 :(得分:1)

billing.Text = ds.Tables[0].Rows[0]["Billing"].ToString("c");

答案 2 :(得分:0)

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

我们实际上有几种不同的格式化方法。您的帖子在该值之前有一个硬编码的美元符号,在这种情况下,我们可以使用 F2 N2 格式字符串为我们提供一个小数点,右侧有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 格式,它将为我们添加文化特定货币符号和数字格式(小数点,逗号)

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