Java的浮点数、包装类与类型转换

一、Java的浮点数(float和double)不精确,在需要精确计算的时候 避免使用float和double。
    float和double在内存中的存储方式
    float类型(32位):1bit(符号位) 8bits(指数位) 23bits(尾数位)
    double类型(64位):1bit(符号位) 11bits(指数位) 52bits(尾数位)
    
    浮点数 使用的是科学计数法表示
    10000 = 1*10^4  -->  1E4
    0.001=1*10^-3   -->  1E-3
    二进制很难精确表示浮点数。用近似值表示
    
二、包装类
    Java中每一个基本数据类型都在java.lang包中有一个对应的包装类型。
    包装类型作用:
      1、提供了一系列实用的方法(属性)。
      2、比如集合(泛型)等不允许使用基本数据类型,但又要存放是使用包装类。
      
    装箱:从基本数据类型转为包装类型的过程叫装箱;
    拆箱:从包装类型转为基本数据类型的过程叫拆箱
    从JDK1.5开始,就提供了自动装箱和自动拆箱功能。
    
| 基本数据类型   | 包装类     |
| ------------ | --------- |
| byte         | Byte      |
| short        | Short     |
| int          | Integer   |
| long         | Long      |
| float        | Float     |
| double       | Double    |
| char         | Character |
| boolean      | Boolean   |

这八种包装类所继承的父类不全都相同。
    1. Integer ,Byte,Float,Double,Short,Long都属于Number类的子类,Number类本身提供了一系列的返回以上六种基本数据类型的操作。
    2. Character属于Object子类
    3. Boolean属于Object子类。
    
 
三、类型转换
1、隐式类型转换(自动类型转换)
    整型、浮点型、数字可以进行混合运算的。在运算中,不同的类型会先转换为同一类型,然后再进行计算。
    隐式类型转换(自动类型转换)规则:
        1、小的类型自动转换为大的类型
        2、整型可以自动转换为浮点型,但可能会产生舍入误差。
            int 32位=1符号位+31位
            float 1bit(符号位) 8bits(指数位) 23bits(尾数位)
            double类型(64位):1bit(符号位) 11bits(指数位) 52bits(尾数位)
            long 64位=1符号位+63位
        3、字符型可以自动转换为整数(int、long)。
    
2、显示类型转换(强制类型转换)
    格式 (type)value。
       type就强制转换后的数据类型。
    
    注意事项:
    1 强制转换可能导致溢出或精度丢失。
    2 在把容量大的数据类型转换为容量小的数据类型时必须使用强制转换
    3 浮点型转为整型是通过舍弃小数部分,不是四舍五入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值