Dot-Net
如何在只讀 CultureInfo.NumberFormat 上設置 CurrencySymbol?
我正在嘗試使用與預設 .Net 文化 (SFr.) 不同的符號 (CHF) 格式化貨幣 (Swiss Frank – de-CH)。問題是該區域性的 NumberFormat 是只讀的。
有沒有使用 CultureInfo 和 NumberFormat 解決這個問題的簡單方法?有什麼方法可以覆蓋 CurrencySymbol?
例子:
Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055) newCInfo.NumberFormat.CurrencySymbol = "CHF" MyCurrencyText.Text = x.ToString("c",newCInfo)這將在設置時出錯,
NumberFormat.CurrencySymbol因為NumberFormatis**ReadOnly**。謝謝!
呼叫
Clone,CultureInfo這將創建一個可變版本,然後設置貨幣符號。您可以更具體:獲取
NumberFormatInfo並且僅複製它。IMO,它稍微優雅一些,除非您需要更改文化中的其他任何內容。C# 中的範例:
using System; using System.Globalization; class Test { static void Main() { CultureInfo original = CultureInfo.GetCultureInfo(2055); NumberFormatInfo mutableNfi = (NumberFormatInfo) original.NumberFormat.Clone(); mutableNfi.CurrencySymbol = "X"; Console.WriteLine(50.ToString("C", mutableNfi)); } }