问答详情
源自:3-10 练习题

为什么35/4=8 这是为啥??

如果这就是计算机算的 真实有点让人无法接受 平白无故的就把3吃了 哎 感觉整个人都不好了 

所以整型在实际中运用 的比较少对不对???! 

提问者:Dusdii 2019-01-15 10:25

个回答

  • 慕村3187174
    2019-01-16 15:14:48
    已采纳

    double num=35/8; 这样那后面的小数就出来了,自然double可以换成float,至于为啥要分为整型或浮点,目前才疏学浅的我只能说这个是约定了,就比如说加法为什么是+这个符号而不是其他符号。祝学得开心

  • 慕仔1238278
    2019-02-12 17:50:46

    看数字类型,计算式中的都是整型,所以默认的是int类型。你可以尝试把某个数字改成小数类型,比如将8改为8.0,计算结果就不一样了

  • 慕哥3872218
    2019-02-02 00:34:20

    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;

  • netizen
    2019-01-31 20:44:30

    标准答案是:2.75

    计算步骤,小括号最优,等于35,然后 / 4,等于8.75,最后 % 3,等于2.75 

  • 陈英俊灬
    2019-01-15 10:28:02

    计算机只取整数位,没有四舍五入,小数点之后直接舍掉了