所以今天在学校,我们学习了一些java中的数学课,但我并不特别理解为什么它会自动从-11.87到-12。
import java.util.*;
public class println{
public static void main (String [] args){
System.out.println(8 % 3 / 15 - 12);
}
}
答案 0 :(得分:3)
它没有"向上"。这里完成的步骤非常简单:
8%3
。模运算符%
返回整数除法的剩余部分8/3(因此它返回2)2 / 15
。 2
和15
都是java中的整数(int
)。整数除法将切断任何小数位。所以这个表达式将被评估为0!0 - 12
。结果为-12
答案 1 :(得分:1)
原因是您在表达式中提供的所有数字都是非浮点数的形式。因此,JVM不处理具有浮点数的表达式。
8 % 3 = 2
2 / 15 = 0
0 - 12 = -12
由于没有数字是浮点数(例如双数),这就是操作实际进行的方式。
答案 2 :(得分:0)
你的表达非常丑陋:
System.out.println(((8 % 3) / 15) - 12);
首先评估
(8 % 3) = 2
并且
(2/15) = 0
最后
0-12 =-12
答案 3 :(得分:0)
为了理解这一点,你应该理解Java中整数和双精度的结构。例如,如果你这样编码,它就不会“向上”。
public class println {
public static void main(String[] args) {
System.out.println(8.0 % 3.0 / 15.0 - 12.0);
}}
因为你使用的数字是整数(没有任何小数)。如果您以双重形式给出数字,程序会为您提供确切的结果,即-11.866666666666667。