我有一个数据读取器来读取数据库中的数据.我正在从销售表中阅读TotalPrice.我想将总价格显示为2位小数.
代码是链接:
TotalPrice.Text = myReader["TotalPrice"].ToString("N2");
Run Code Online (Sandbox Code Playgroud)
但是我输入了这个错误:方法"ToString"没有重载需要1个参数代码有什么问题?
Chr*_*ain 14
假设TotalPrice是一个Decimal列,而myReader是一个DataReader:
TotalPrice.Text = myReader.GetDecimal(myReader.GetOrdinal("TotalPrice")).ToString("N2");
Run Code Online (Sandbox Code Playgroud)
这里的想法是myReader的索引器(你在调用时使用的myReader["TotalPrice"])返回一个Object.它必须,因为它在编译时不知道列的类型.通过使用.GetDecimal(),您可以确保获得十进制值或错误.
.ToString采用格式字符串的重载在Decimal上声明,而不是在Object上声明.对象的.ToString没有参数.
对GetOrdinal的内部调用返回给定名称的字段索引 - 如果您在多个数据行的循环中执行此操作,您可能希望将其缓存在变量中.
String.Format()可以解决这个问题.F2是定点表示法,带有2位小数.
TotalPrice.Text = string.Format("{0:F2}", (double)myReader["TotalPrice"]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29384 次 |
| 最近记录: |