Java语言中int a=10;double b=a/4;b的值为什么是2.0 ,从结果上看double a=10;int b=a/4;b的值也是2.0,

关于精度丢失,以及怎么理解上两种写法的区别

a/4参加运算的两个数都是整型的,所以按照整型的进行计算得到的数会取整,然后再赋值给double型的b,这时小数已经丢失了。
int b=a/4;虽然计算是double型的,但由于赋值给整型的b所以取整后再赋的值。
double b=(double)a/4;或者b=a/4.0;即可得到浮点结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-16
int a=10;double b=a/4中a/4实际就是取整,你然后把这个数又转化成小数,所以输出的是2.0
double a=10;int b=a/4;a/4算出来应该是2.5,但是你强制转化成整型,就成了2.0