格式未在法国文化中应用
Format not getting applied in French culture
我需要将格式应用于 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"));
我知道有许多格式相关的解决方案已经可用,但无法弄清楚这种方法有什么问题。
你可以使用这个功能:
public static string FormatNumber(this double number)
{
return number.ToString("#,##0.00");
}
然后像这样调用你的函数:
decimal integral = Convert.ToDecimal("12345");
Console.WriteLine(integral.FormatNumber());
您没有使用创建的文化信息来格式化数字。
此外,您的格式说明符不正确。您必须始终使用 POINT 作为格式字符串中的小数点分隔符,然后将其替换为特定于区域性的小数点分隔符(fr-FR 的逗号)。
以下应该可以正常工作:
integral.ToString("## ##0.0", ci)
我在这里提供了答案:
我展示了多种方法,希望对您有所帮助。
我需要将格式应用于 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"));
我知道有许多格式相关的解决方案已经可用,但无法弄清楚这种方法有什么问题。
你可以使用这个功能:
public static string FormatNumber(this double number)
{
return number.ToString("#,##0.00");
}
然后像这样调用你的函数:
decimal integral = Convert.ToDecimal("12345");
Console.WriteLine(integral.FormatNumber());
您没有使用创建的文化信息来格式化数字。 此外,您的格式说明符不正确。您必须始终使用 POINT 作为格式字符串中的小数点分隔符,然后将其替换为特定于区域性的小数点分隔符(fr-FR 的逗号)。
以下应该可以正常工作:
integral.ToString("## ##0.0", ci)
我在这里提供了答案:
我展示了多种方法,希望对您有所帮助。