问答详情
源自:3-2 Java中的算术运算符

有关float及强制类型转换的问题

1)int a=4;

float b=(float)a/4;为什么不对?a/4的结果什么时候强制转换/

2)float 与double有什么根本的区别吗?

提问者:qq_孙宁_0 2016-03-22 09:44

个回答

  • qq_笔墨茶叶_0
    2016-03-22 10:17:00

    b = (float)a/4其实是把int型的a先转换成float,再除以4,此时结果是b = 1.000000;

    自动转化类型有很多情况,b =a/4.0时就会自动把b的值变为浮点型,还有是调用某些东西时自动转化

  • fghhjh
    2016-03-22 10:00:09

    第一个运算结果是正确的,一般我会直接使用float b = a/4.0;

    第二个float是单精度浮点型,有效数位8位,占4个字节,double是双精度浮点型,有小数位16位,占8个字节。