亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在頁面上添加不舍入值 asp.net 貨幣符號

如何在頁面上添加不舍入值 asp.net 貨幣符號

C#
紅顏莎娜 2022-08-20 16:20:52
我有十進制類型的折扣總計變量。值在頁面后面的代碼上設置,加載頁面后,值將四舍五入。<%#DataBinder.Eval(Container.DataItem, "DiscountTotal","{0:C}")%>值 7610.3250D 顯示為 £7610.33。我喜歡將其顯示為£7610.32或$ 7610.32,具體取決于登錄用戶。當前的文化設置已經存在,我只擔心四舍五入。
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

嘗試使用MidpointRounding


decimal value = 7610.3250m;

string formattedValue = string.Format("{0:C}", decimal.Round(value, 2, MidpointRounding.ToEven));



查看完整回答
反對 回復 2022-08-20
?
撒科打諢

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() %>


查看完整回答
反對 回復 2022-08-20
  • 2 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號