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 關注
- 99 瀏覽
添加回答
舉報