这是代码:
static void Main(string[] args)
{
int xd2 = 5;
for (double xd = (double)xd2; xd <= 6; xd += 0.01)
{
Console.WriteLine(xd);
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:

我想继续添加0.01(正如你在屏幕上看到的,有时恰好添加0.99999)谢谢
Ode*_*ded 14
使用decimal,如果你想保持这种精度.
浮点类型无法准确表示某些值.我建议阅读每个计算机科学家应该知道的关于浮点运算的内容,以获得全面的解释.
decimal xd2 = 5m;
for (decimal xd = xd2; xd <= 6m; xd += 0.01m)
{
Console.WriteLine(xd);
}
Run Code Online (Sandbox Code Playgroud)
不,这就是双打工作的方式....尝试使用十进制代替
int xd2 = 5;
for (decimal xd = (decimal)xd2; xd <= 6; xd += 0.01M)
{
Console.WriteLine(xd);
}
Run Code Online (Sandbox Code Playgroud)
如果你想坚持双打,但只关心小数点后两位使用......
int xd2 = 5;
for (double xd = (double)xd2; xd <= 6; xd += 0.01)
{
Console.WriteLine(Math.Round(xd,2));
}
Run Code Online (Sandbox Code Playgroud)