与货币工作时的最佳实践

3

我正在开发一款桌面应用程序,可能会在全球范围内部署。在国际化方面,我最大的问题是货币。以下是几个问题:

我正在使用 SQL Server Compact Edition,该数据库支持 MONEY 类型。我的第一个问题是,无论用户的文化背景如何,它是否能够处理数据存储?

我的第二个问题是数据处理。我知道可以使用 "C" 格式字符串,这对于显示来说可能还好,但是保存回来时,如何处理用户输入的值?有没有标准的方法来解析输入的值并将其保存到 MONEY 字段中,在此过程中考虑文化差异而不必编写任何种类的异常处理代码?

我正在使用 WPF 中的 C#进行开发,但我猜想可能存在一种近乎普遍的解决方案。


1
Decimal.TryParse() 应该执行符合文化习惯的操作。 - cdhowie
1个回答

5
MONEY类型仅告诉系统使用必需的精度和舍入规则来正确处理货币计算,它对实际货币没有任何了解。您需要在UI和货币转换规则中处理它。
框架使用当前区域设置来显示货币字符串格式的正确货币符号,但如果您显示不同的货币,则需要覆盖此行为。
使用C#/WPF(和Silverlight),如果您在XAML中使用StringFormat输出货币,则它也会处理用户输入(至少在我的经验中是这样)。

框架中的方法已经具备文化意识。它们使用调用线程的当前文化来相应地解析和转换字符串。如果需要,您还可以自定义这些转换。 - alf
1
@alfonso - 但是如果你要显示不同的货币,你需要自己处理。 - ChrisF
没错,但实际上你并不需要知道特定文化的具体格式。你可以获取一个文化的默认IFormatConverter,并在解析/转换时使用它。 - alf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接