2011-05-05 58 views
3

我試圖改變我公司應用程序中的現有數字格式,以使其對國際用戶更具可讀性。這是一個股票交易應用程序,所以大多數股票價格的數字精確到2個小數點,就像 - > 17.23我們也可以得到有4個小數點的精確值,所以一分錢股票可能是0.0341。我們用於股票的原始字符串格式是「#,## 0.00 ##」這將給我們所需的格式(基本上修剪'0')。這裏的問題是','和'。'被強制轉移到用戶上,在許多其他國家,千位分隔符是'。'小數點是','。老闆人不想對所有數字都使用「N4」,儘管這可以解決全球化問題。是否有可能擁有全球化的自定義字符串格式?全球化的自定義數字格式 - 可變小數點

除了編寫一些中間人代碼來國際化數字格式的原始方式或另一種string.format方法之外的其他選項?

回答

0

自定義格式字符串中的,.已轉換爲當前區域性的正確分隔符。你不應該需要改變你的代碼。見MSDN

+0

啊,你說得對。顯然我的問題是產生字符串的線程沒有運行,因爲我認爲我指定的文化。 – ReiniGrauer 2011-05-05 18:43:04

+0

我看到的唯一的其他問題是貨幣,如果我想在當前文化的貨幣符號前面加上2-4小數點的精度,那麼是否有一個很好的方法來做到這一點?使用「$ ###,## 0.00 ##」將始終使用'$',因爲它不是文化貨幣符號(根據MSDN)的佔位符正確嗎? – ReiniGrauer 2011-05-05 19:02:01

+1

看看我的答案,只需將N4更改爲C4即可 – goenning 2011-05-05 19:13:46

1

檢查了這一點:

float value = 0.0341f; 
string output = string.Empty; 
CultureInfo brazil = new CultureInfo("pt-BR"); 
CultureInfo usa = new CultureInfo("en-US"); 
output = value.ToString("C4", brazil.NumberFormat); //output is R$ 0,0341 
output = value.ToString("C4", usa.NumberFormat); //output is $0.0341