先算9/10等于0,所以输出都是0
整数除整数结果还是整数,小数被舍弃了。改为9.0/10试试
我来给你科学的解释一下吧:
除法运算符( / ),得到两个数据相除的商。
在 Java 语言中,整数除以整数结果还是整数,如果除不尽,会舍弃余数。
也就是说,9 / 10 的商是 0,因为参与运算的被除数、除数都是整数(int类型),所以计算结果还是整数,舍弃了余数部分,结果是 0。
如果想返回小数可以使用 9f/10 或者 9.0/10
因为9和10默认都是整型字面量,两个整型相除必然是整型,而在整型点条件下,9/10=0,而拿double变量接受,会自动转型,其实打印出来的值是double类型,且值应该是0.0才对
第一个图,9/10两边都是int类型,得出结果是0,舍去余数。但是现在将0存入了double类型变量里面,这个0自动转型为double类型,所以最终输出0.0。
第二个图,(9/10)结果为0,然后乘10,结果还是0。前面还有一个(double),这是将结果强制转化为double类型了,然后将结果存入double类型变量中,所以最终输出0.0。