Dusdii
2019-01-15 10:25
如果这就是计算机算的 真实有点让人无法接受 平白无故的就把3吃了 哎 感觉整个人都不好了
所以整型在实际中运用 的比较少对不对???!
double num=35/8; 这样那后面的小数就出来了,自然double可以换成float,至于为啥要分为整型或浮点,目前才疏学浅的我只能说这个是约定了,就比如说加法为什么是+这个符号而不是其他符号。祝学得开心
看数字类型,计算式中的都是整型,所以默认的是int类型。你可以尝试把某个数字改成小数类型,比如将8改为8.0,计算结果就不一样了
Java赋值运算中按int类型进行计算,int为4字节00000000 00000000 00000000 00000000,而double为8字节,整型中没有存储小数的位置,所以运算结果也直接取整。
Java中“=”为赋值的意思,35/8是将运算后的整型数值4赋值给num,而num为double型,所以会再将4以double型输出,结果为4.0
long num2=1000000*1000000*1000;中输出结果为-1530494976,就是因为Java在做赋值运算时都按int类型进行计算,1000000*1000000已经超出了int的最大值,int类型计算结果超过最大值后会直接跳到最小值不断循环,直到计算出最终结果,所以要想输出算数的正确结果就应该先对其进行强转:
long num2=(long)1000000*1000000*1000;
标准答案是:2.75
计算步骤,小括号最优,等于35,然后 / 4,等于8.75,最后 % 3,等于2.75
计算机只取整数位,没有四舍五入,小数点之后直接舍掉了
Java入门第一季(IDEA工具)升级版
1165548 学习 · 17586 问题
相似问题