我正在尝试将asp.net文本框设置为SQL 2005货币数据类型字段,显示给用户的初始结果是40.0000而不是40.00。 在我的asp.net文本框控件中,我想只显示小数点后面的前两个数字,例如40.00
最好的方法是什么? 我的代码如下:
this.txtPayment.Text = dr["Payment"].ToString();
答案 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");
答案 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);
我将测试给出的所有代码示例。如果我能用一行代码解决这个问题,那就是我要做的事情。