格式未在法国文化中应用

时间:2016-12-30 09:52:48

标签: c# string formatting cultureinfo

我需要将格式应用于decimal类型的数量。假设数字12345必须以## ##0,0格式显示。然后,所需的输出为12 345,0。但不知怎的,它不能正确应用,我得到的结果为1 2,345

以下是执行格式化工作的代码。另请查看我的问题所在的fiddle

已更新

CultureInfo ci = new CultureInfo("fr-FR");
decimal integral = Convert.ToDecimal("12345");
Console.WriteLine(integral.ToString("## ##0,0"));

我知道有许多格式相关的解决方案已经可用,但无法通过这种方式解决问题。

3 个答案:

答案 0 :(得分:2)

您没有使用创建的文化信息来格式化数字。 此外,您的格式说明符不正确。您必须始终在格式字符串中使用POINT作为小数分隔符,然后将其替换为特定于区域性的小数点分隔符(fr-FR的逗号)。

以下内容应该可以正常运行:

integral.ToString("## ##0.0", ci)

答案 1 :(得分:0)

你可以使用这个功能:

public static string FormatNumber(this double number)
        {
            return number.ToString("#,##0.00");
        }

然后调用你的函数:

decimal integral = Convert.ToDecimal("12345");
Console.WriteLine(integral.FormatNumber());

答案 2 :(得分:0)

我在这里提供了答案:https://stackoverflow.com/a/40443891/2963805

我已经表现出多种方式,并希望能帮到你。