force a string to 2 decimal places

与世无争的帅哥 提交于 2019-11-29 05:29:22

String simply does not implement IFormattable. To use the formatting, remove .ToString() so that you aren't passing in a String.

<%# String.Format("{0:f2}",DataBinder.Eval(Container.DataItem, "pricerange"))%>

To see this more explicitly, run this code:

Console.WriteLine(string.Format("{0:f2}", "123.888"));
Console.WriteLine(string.Format("{0:f2}", 123.888));

which outputs

123.888
123.89
Virtual Web Solutions

You can use:

String.Format("{0:0.00}",value);

Based on MSDN, you should be able to express the format mask within the call to DataBinder.Eval.
http://msdn.microsoft.com/en-us/library/2d76z3ck%28VS.90%29.aspx

So essentially you should be able to do this - and force only 2 decimal places to show:

<%# DataBinder.Eval(Container.DataItem, "pricerange", "{0:##0.00}")%>

Try not calling ToString() on the output of the Eval method - you can't format a string with number formatting strings.

simple: DataBinder.Eval(Container.DataItem, "pricerange").ToString("C2")

more @ http://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx#CFormatString

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!