c# - 更改 System.Globalization.NumberFormatInfo 中的货币符号位置

标签 c# .net-3.5 globalization

我使用 new CultureInfo("fr-FR") 创建了一个 CultureInfo 对象。现在我有一个号码,我想调用 .ToString("C", FrenchCultureInfo)。生成的字符串将 € 放在数字之后。为什么?

CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"

据我所知,欧元需要在左侧,而我的业务要求要求它在左侧。但是,无法以编程方式设置此值。

关于如何轻松设置此值的任何想法?我已经开始采用美国文化对象并将法国文化中的所有内容复制到它,因为我们仍然需要所有其他法国设置,除了正确值上的欧元。但这种方法非常耗时且令人沮丧。

谢谢!

最佳答案

克隆原始文件然后修改它:

CultureInfo french = new CultureInfo("fr-FR");
french = (CultureInfo) french.Clone();
// Adjust these to suit
french.NumberFormat.CurrencyPositivePattern = 2;
french.NumberFormat.CurrencyNegativePattern = 2;
double value = 1234.56;
string output = value.ToString("C", french);//output = "€ 1 234,56"

请注意,这只会影响特定的 CultureInfo 对象,而不是一般为法语获得的对象 - 因此您需要确保在任何地方都使用它。

关于c# - 更改 System.Globalization.NumberFormatInfo 中的货币符号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1446273/

相关文章:

c# - 如何调出内置文件复制对话框?

.net - 有关重构现有 .net 应用程序以支持本地化的技巧?

ruby-on-rails - 如何验证翻译后的数据?

c# - RavenDB:Raven.Abstractions.Exceptions.ConcurrencyException:具有键的文档: 'cache-fncwr10b' 当前在另一个事务中创建

C# 和 MS Word,range.font.bold 不起作用

wcf - 使用 webMessageEncoding 的 webHttpBinding : how to configure?

vb.net - 基本本地化(中性语言)

c# - 将值传递给 Controller ​​中的操作

c# - 创建后无法立即写入文件

.net - 无法安装使用 VS2010 构建的针对框架 3.5 的 MSI