所以我在一个名为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中出现错误,所以我傻眼了。
答案 0 :(得分:6)
numer
和denom
都是整数,所以当你将一个除以另一个时,结果是一个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#?