2 回答
TA贡献1862条经验 获得超6个赞
尝试使用MidpointRounding
decimal value = 7610.3250m;
string formattedValue = string.Format("{0:C}", decimal.Round(value, 2, MidpointRounding.ToEven));
TA贡献1934条经验 获得超2个赞
假定属性的下划线数据类型为 System.Decimal,则可以使用它来为该方法提供适当的区域性,以便它可以基于指定的区域性呈现货币符号。DiscountTotalToString
// For $, use en-US instead of en-GB.
// You must make this available in your session.
var sessionUiCulture = new System.Globalization.CultureInfo("en-GB");
...
...
<%# decimal.Round((decimal)DataBinder.Eval(Container.DataItem, "DiscountTotal"), 2, MidpointRounding.ToEven).ToString("C", sessionUiCulture) %>
此外,如果在整个应用程序中需要此行为,则实现此目的的最佳方法是在请求管道中将属性设置为适当的区域性,这样就不必担心这种情况。System.Globalization.CultureInfo.CurrentUICulture
根据您走的路线,您应该考虑为此创建一个扩展方法:
public static string ToCurrency(this decimal value)
{
return decimal.Round(value, 2, MidpointRounding.ToEven).ToString("C");
}
所以你可以做:
<%# ((decimal)DataBinder.Eval(Container.DataItem, "DiscountTotal")).ToCurrency() %>
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报