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

来源:3-2 Java中的算术运算符

qq_孙宁_0

2016-03-22 09:44

1)int a=4;

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

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

写回答 关注

2回答

  • 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个字节。

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165171 学习 · 17581 问题

查看课程

相似问题