将int转换为float并显示结果不起作用?

时间:2011-11-07 00:27:36

标签: c# methods

所以我在一个名为Rational的类中有一个方法,它传入两个int,我想返回一个float,但是这个方法返回0,我不明白为什么!

public static float DisplayFloat(int numer, int denom)
        {
            float result = numer / denom;
            return result;

        }

在我的主要内容中这样被调用:

Console.WriteLine(Rational.DisplayFloat(12, 36));

有什么想法吗?我没有在Visual Studio中出现错误,所以我傻眼了。

3 个答案:

答案 0 :(得分:6)

numerdenom都是整数,所以当你将一个除以另一个时,结果是一个int;结果然后转换为浮点数,但为时已晚,因为你已经丢失了小数部分。如果你想要一个浮动结果,在进行除法之前施放一个操作数:

float result = (float)numer / denom;

答案 1 :(得分:2)

你需要将其中一个int转换为float

public static float DisplayFloat(int numer, int denom)
{
    float result = (float)numer / denom;
    return result;
}

答案 2 :(得分:1)

您需要将分子或分母转换为浮点数;否则,除法仅使用整数数学完成。例如:

float result = float(numer) / float(denom);

MSDN has more information.。另请参阅问题this answer

Why do the division (/) operators behave differently in VB.NET and C#?