C# 尝试设置数字格式,使其显示为0到100之间的整数,但格式不为';不行?
我有以下代码:C# 尝试设置数字格式,使其显示为0到100之间的整数,但格式不为';不行?,c#,C#,我有以下代码: var a = (((double)x.Row.Points / x.Row.Viewed) * 100).ToString("D3") 我想要的是a的值,如“0”、“1”、“10”或“100”,不带小数点 但它给了我这个堆栈错误。有人能解释为什么D3作为格式字符串不起作用吗?请注意,它在使用ToString()之前工作正常 System.FormatException:指定的格式“D2”无效 使用此选项将数字转换为int: int int = Convert.ToInt32(
var a = (((double)x.Row.Points / x.Row.Viewed) * 100).ToString("D3")
我想要的是a的值,如“0”、“1”、“10”或“100”,不带小数点
但它给了我这个堆栈错误。有人能解释为什么D3作为格式字符串不起作用吗?请注意,它在使用ToString()之前工作正常
System.FormatException:指定的格式“D2”无效
使用此选项将数字转换为int:
int int = Convert.ToInt32(number);
格式“D3”为
i、 e
这项工作:
int myNumber = 1;
var val = myNumber.ToString("D3");
这将产生格式异常
:
double myNumber = 1.0;
var val = myNumber.ToString("D3");
十进制格式说明符仅适用于: 支持:仅限整数类型 此外,它还用于在左侧填充零,这似乎不是您想要的。出于您的目的,您可以强制转换为int:
var a = ((int)(((double)x.Row.Points / x.Row.Viewed) * 100)).ToString()
“堆栈错误”是什么意思?我将发布errorSystem.FormatException:指定的格式“D3”无效请参见。我希望它能帮助你。相关: