[英]How to correctly format text based on currency
在我的應用程序中,執行了將文本顯示到GUI的計算。 應用程序將用戶給定的數量乘以定義的數字(說0.85)以創建總數(用戶類型為2,應用程序得出2 x 0.85)。
由於顯示的數字是貨幣編號,因此我試圖正確格式化文本以使其可讀和正確。
到目前為止,我已經嘗試過
.ToString("N2");
這只是導致在圖的末尾附加了兩個附加的零。
問題可以在這里看到:
如您所見,正確的值為.68(或£0.68),我的文字顯示為£68.00,將“ N2”從ToString中取出確實有幫助,但我仍然剩下£68。
我知道這並不像聽起來那么瑣碎,但這是我以前從未想過的事情,這讓我思考了很長時間。
謝謝!
注意:數據存儲為雙精度數據,以前是浮動數據,因此可以靈活地更改應用程序。 貨幣圖標也不需要,因為我是手動提供的,只需要格式化即可。
嘗試這個:
string.Format("{0:C}", money_value);
這也將起作用:
.ToString("C");
(我意識到這將包括貨幣符號,但操作員沒有說這是一個問題,只是沒有必要。)
如果您想全力以赴,可以這樣做:
string.Format(ui_culture, “{0:C}”, money_value);
其中ui_culture
是與貨幣關聯的文化。
編輯添加:
這種格式的好處是它可以管理所有標點符號。
我不確定貨幣符號是否始終是主角。 如果是這樣,您可以將其刪除:
string.Format(ui_culture, “{0:C}”, money_value).substring(1);
乍一看,您似乎已將值(0.68)乘以100得到68.00,這是正確的。 但是,您的數量似乎是80,應該為您提供54.40的值。
如果乘以2,則應該得到1.70。
您將需要使用帶有IFormatProvider參數的ToString重載:
double value = 80;
string ukCurrency = value.ToString("N2", CultureInfo.CreateSpecificCulture("en-GB"));
我實際上不確定是否會包含貨幣字符(未經測試的示例)。 我希望使用“ N2”格式的字符串會去除貨幣字符……但可能不會。 跳過字符串的第一個字符可能很容易:
ukCurrency = ukCurrency.Substring(1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.