如何在C#中将int转换为float?

时间:2017-10-25 17:28:53

标签: c# casting

我想写下这个等式:

1+(2/n!)+(3/n!)+...+(n/n!),

但结果总是等于1。 错误的代码在哪里? 我的代码:

Console.Write("Please Enter Your Number: ");

int num = int.Parse(Console.ReadLine());

int fact = 1;

for (int i = num; i > 1; i--)
{
    fact *= i;
}

Console.WriteLine("Fact= " + fact);

float result = 1;

for (int i = 2; i >= num; i++)
{
    result += (i / fact);

}
Console.WriteLine("Result= " + result);

Console.WriteLine("Press any key to exit...");

Console.ReadKey();

1 个答案:

答案 0 :(得分:0)

因为这不循环

for (int i = 2; i >= num; i++)

如果你在调试中追踪它,那将是显而易见的

<=

在implicate cast中,这个(i / fact)可能在演员阵容之前执行,因此将事实抛向浮动。 (浮点)的事实。

你没有int / decimal

您可以使用decimal而不是float