java 编程中的除法

division in java programming

同一个公式给出了 2296 和 1500 的不同答案,而这两种情况的预期答案都是 100。请解释这种行为。我对这个简单的事情感到非常惊讶。最初我认为这一定是由于运算符优先级,但我无法理解。

用 2296 编程:

public class testpercent {
    public static void main(String args[]) {
            System.out.println("first formula  ===>"+(2296 * 100 )/2296);
            System.out.println("alternate formula  =====>" + (2296/(2296/100)));
    }
}

输出:

first formula ===>100
alternate formula =====>104

与 1500 相同的程序:

public class testpercent {
    public static void main(String args[]) {
            System.out.println("first formula for ===>"+(1500 * 100 )/1500);
            System.out.println("alternate formula for =====>" + (1500/(1500/100)));
    }

}

输出:

first formula ===>100

alternate formula =====>100

2296 的程序首先执行 (2296/100) 给出 22.96 并删除 96 的余数。然后 2296/22 给出 104。

1500 的程序执行相同但没有余数并以“正确”答案结束。

如果您想使用替代公式获得正确的输出,请尝试使用 double 或 float 等数据类型。