我有一个重复项,显示一个双精度浮点数。偶尔会出现像这样带有3个小数位的数字1165.833。我试图通过使用string.format方法将其强制转换为两个小数位,但它仍然保持不变:
<%# String.Format("{0:f2}",DataBinder.Eval(Container.DataItem, "pricerange").ToString())%>
有什么想法吗?
String
并没有实现 IFormattable
接口。如果要使用格式化,需要移除 .ToString() 方法,这样你就不会传入一个字符串。
<%# String.Format("{0:f2}",DataBinder.Eval(Container.DataItem, "pricerange"))%>
看得更清楚一些,运行以下代码:
要看得更清楚一些,运行以下代码:
Console.WriteLine(string.Format("{0:f2}", "123.888"));
Console.WriteLine(string.Format("{0:f2}", 123.888));
输出的内容
123.888
123.89
您可以使用:
String.Format("{0:0.00}",value);
<%# DataBinder.Eval(Container.DataItem, "pricerange", "{0:##0.00}")%>
Eval
方法的输出上调用ToString()
- 数字格式化字符串无法格式化字符串。简单: DataBinder.Eval(Container.DataItem, "pricerange").ToString("C2")
更多信息请参见 http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString