2016-11-16 190 views
2

我在Visual Studio 2010中使用mfc編程。格式千位分隔符

我住在歐洲,所以我的PC不是美國,而是歐洲的區域設置。

我使用CString的.Format函數來打印計算結果,我想添加一個小數點作爲分隔符,數百和數千之間。

例如,我想有顯示的23.400,而不是23400

是否有可能使用的%特定的格式或我要改變PC的設置?

感謝您的幫助

回答

4

據我知道的CString的.Format不支持此。

我會使用一個stringstream處理格式:

std::ostringstream temp; 
temp.imbue(std::locale("")); 

temp << 23400; 

CString result = temp.str().c_str(); 

指定爲空字符串,因爲我在這裏所做意味着它應該拿起區域從操作系統設置的語言環境的名稱。你可以給一個特定的區域設置的名稱,而不是(例如,如果你想有一個特定的語言環境中,無論操作系統如何配置):

temp.imbue(std::locale("de")); // German locale 
0

據我知道這是什麼你所期待的。簡單的谷歌搜索給出了答案。順便說一下,這種類型的打印(%.2f)在幾乎每種現代語言中都是非常標準的。

"Floating point: %.2f\n"

https://msdn.microsoft.com/en-us/library/aa314327(v=vs.60).aspx

+0

的 '%.2f' 格式字符意味着只顯示2十進制數。這不是我問的。我想要一個 。作爲千和百之間的分隔符,不是整數和小數 –