浮点型数据类型

整型数据赋值给浮点型数据,取出这个浮点型数据, 默认是实数小数的


  //double 和 float 数据类型都是浮点型,
        // 在从内存中取出来后, 即便之前的赋值是个 整型的数据类型, 把浮点型取出来后都会变成实数的小数, 比如赋值为0, 取出来后就是0.0了
        float var_f = 0;
        double var_d = 0;
        System.out.println(var_f);// 0.0
        System.out.println(var_d);// 0.0

        String str = String.valueOf(var_d);
        System.out.println(str);// 0.0

        String strInt = String.valueOf(0);
        System.out.println(strInt);// 0

单纯的Double.toString和Float.toString, 只要小数位在一定范围内, 是不会出现精度损失的, 但是一旦涉及到浮点型运算, 就会有精度损失的问题了, 原因是 在浮点运算前, 是根据 经过 IEEE 754-2008 standard处理后的浮点表示的值拿到的值, 此时已经是非精确的了

你认为你看错了,但结果却是是这样的。问题在哪里呢?原因在于我们的计算机是二进制的。浮点数没有办法是用二进制进行精确表示。我们的CPU表示浮点数由两个部分组成:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算也会产生一定的误差。如:2.4的二进制表示并非就是精确的2.4。反而最为接近的二进制表示是 2.3999999999999999。浮点数的值实际上是由一个特定的数学公式计算得到的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值