2011-08-17 38 views
3

我正在研究可能在全球部署的桌面應用程序。國際化的最大問題是貨幣。幾個問題:與貨幣一起使用的最佳實踐

我正在使用SQL Server Compact Edition,它支持MONEY類型。我的第一個問題是不管用戶的文化如何處理數據存儲?

我的第二個問題是數據處理。我知道我可以使用「C」格式的字符串,並且我猜這樣可以顯示,但是在保存時我該如何處理用戶輸入的值?有沒有一種標準的方法來解析輸入的值並將其保存到MONEY字段中,同時具有文化意識並且不必爲任何類型的例外編寫?我正在使用WPF中的C#,但我猜測這可能是一種近乎通用的解決方案。

+1

'Decimal.TryParse()'應該做文化上正確的事情。 – cdhowie

回答

5

MONEY類型只是告訴系統使用正確處理貨幣計算所需的精度和舍入規則。它不知道有關實際貨幣的任何信息。您需要在界面和貨幣換算規則中處理。

框架使用當前文化來顯示貨幣字符串格式的正確貨幣符號,但是如果您顯示不同的貨幣,則需要覆蓋此行爲。

如果您使用XAML中的StringFormat輸出貨幣,則使用C#/ WPF(和Silverlight),它也會處理用戶輸入(或者至少它具有我的經驗)。

+0

框架中的方法已經具有文化意識。他們使用調用線程的當前文化來相應地解析和轉換字符串。如果需要,您還可以自定義此轉換。 – alf

+1

@alfonso - 但如果你顯示不同的貨幣,你需要自己處理。 – ChrisF

+0

沒錯,但實際上你並不需要知道文化的具體格式。您可以獲取文化的默認IFormatConverter並在解析/轉換時使用它。 – alf