2016-12-20 46 views
3

我嘗試使用當前區域設置中的分隔符顯示我的號碼。使用CString.Format()中的區域設置中的小數點分隔符

這裏是我的代碼:

Cstring result;  
Cstring myMeasure; 

myMeasure.Format(_T("%.6f %s"), myDouble, myUnit)); 
result.Format("My volume is: %s", myMeasure); 

結果等於例如 「我的容積爲:4.565600毫升」。 但使用法語區域設置,結果仍然相同(而法語小數點分隔符是逗號而不是句點)。

我嘗試setlocale()方法不當。

char* originalCulture = setlocale(LC_ALL, NULL); // save original culture 
setlocale(LC_ALL,""); 

Cstring result;  
Cstring myMeasure; 

myMeasure.Format(_T("%.6f %s"), myDouble, myUnit)); 
result.Format("My volume is: %s", myMeasure); 

setlocale(LC_ALL, originalCulture); // restore original culture 

有人可以幫我嗎?

回答

0

在執行其他任何操作以應用語言環境之前,您應該先致電setlocale(LC_ALL, "")setlocale(LC_ALL, "your_locale")。前者設置操作系統的默認區域設置,後者設置特定的區域設置。另請考慮檢查this MSDN article瞭解有關setlocale的更多信息。

+0

我已閱讀此MSDN文章,但它沒有幫助小數。我需要一個特定的格式_T(「%。6f%s」)。也許這是這個時期的特定格式? –

相關問題