我需要将格式应用于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"));
我知道有许多格式相关的解决方案已经可用,但无法通过这种方式解决问题。
答案 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
我已经表现出多种方式,并希望能帮到你。