在ASP.Net中显示/格式化SQL 2005货币数据类型的最佳方法

时间:2008-09-01 23:23:26

标签: asp.net

我正在尝试将asp.net文本框设置为SQL 2005货币数据类型字段,显示给用户的初始结果是40.0000而不是40.00。 在我的asp.net文本框控件中,我想只显示小数点后面的前两个数字,例如40.00

最好的方法是什么? 我的代码如下:

this.txtPayment.Text = dr["Payment"].ToString();

5 个答案:

答案 0 :(得分:2)

this.txtPayment.Text = string.Format("{0:c}", dr[Payment"].ToString());

答案 1 :(得分:2)

“c”格式字符串在ASP.NET上的工作方式与在Windows Forms中的工作方式相同吗?因为在WinForms中我相当肯定它服从客户端的货币设置。因此,即使该值以美元存储,如果客户端PC设置为显示日元,那么这是将显示的货币符号。这可能不是你想要的。

如果使用的话可能更明智:

txtPayment.Text = dr["Payment"].ToString("00.00")

答案 2 :(得分:0)

ToString 方法与“c”一起使用,将其格式化为货币。

this.txtPayment.Text = dr["Payment"].ToString("c");

Standard Numeric Format Strings

答案 3 :(得分:0)

@Matt Hamilton

确实如此。 “c”适用于CurrentCultureInfo,如果Web应用程序的所有用户都拥有与服务器相同的货币,则问题就变成了,否则,他们将需要获取cultureinfo客户端并使用从那里收集的货币。

答案 4 :(得分:0)

经过一番研究后,我想出了以下内容:

string pmt = dr["Payment"].ToString();
double dblPmt = System.Convert.ToDouble(pmt);
this.txtPayment.Text = dblPmt.ToString("c",CultureInfo.CurrentCulture.NumberFormat);

我将测试给出的所有代码示例。如果我能用一行代码解决这个问题,那就是我要做的事情。