这里发生了什么?公式是正确的,但答案不是

时间:2017-08-08 13:35:00

标签: java math intellij-idea

public static double Fraction2Decimal(int Numerator, int Denominator)
{
    double Answer = Numerator / Denominator;
    return Answer;
}

public static void main(String args[])
{
    double ans = Fraction2Decimal(2, 8);

    double pi = 3.141592653589793238462643383;
    System.out.print(ans);
}

这段代码正在做的是将分数转换为十进制/双倍,2/8作为十进制是0.25,因为每个人都知道,但IntelliJ IDE返回此

0.0
Process finished with exit code 0

咦!它应该返回0.25,有人能解释这里发生了什么吗?

编辑: 我只是通过检查类型是否缩短答案。

1 个答案:

答案 0 :(得分:-1)

因为你要分为整数,所以只能产生一个int。在除法时,它们会被淹没(四舍五入到较低的整数)。 在进行操作之前,尝试将它们转换为double o float。