簡體   English   中英

如何根據貨幣正確設置文本格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM