在ASP.Net中显示/格式化SQL 2005 money数据类型的最佳方法
时间:2020-03-05 18:46:10 来源:igfitidea点击:
我试图将asp.net文本框设置为SQL 2005 money数据类型字段,显示给用户的初始结果是40.0000,而不是40.00。
在我的asp.net文本框控件中,我只想显示小数点后的前2个数字,例如40.00
最好的方法是什么?
我的代码如下:
this.txtPayment.Text = dr["Payment"].ToString();
解决方案
回答
this.txtPayment.Text = string.Format("{0:c}", dr[Payment"].ToString());
回答
将ToString方法与" c"一起使用以将其格式化为货币。
this.txtPayment.Text = dr["Payment"].ToString("c");
标准数字格式字符串
回答
" c"格式字符串在ASP.NET上的工作方式是否与Windows窗体中的工作方式相同?因为在WinForms中,我可以肯定它遵循客户端的货币设置。因此,即使该值以美元存储,如果客户端PC设置为显示日元,那也将显示货币符号。那可能不是我们想要的。
如果是这种情况,可能会更明智:
txtPayment.Text = dr["Payment"].ToString("00.00")
回答
@马特·汉密尔顿
是的无论当前CurrentCultureInfo是什么," c"都适用,问题就在于Web应用程序的所有用户是否都与服务器使用相同的货币,否则,他们将需要获取cultureinfo客户端并使用从那里收集的货币。
回答
经过研究,我得出以下结论:
string pmt = dr["Payment"].ToString(); double dblPmt = System.Convert.ToDouble(pmt); this.txtPayment.Text = dblPmt.ToString("c",CultureInfo.CurrentCulture.NumberFormat);
我将测试所有给定的代码示例。如果我可以用一行代码解决这个问题,那就是我要做的事情。