zoukankan      html  css  js  c++  java
  • 基本数据类型float和double的区别

    float : 单精度浮点数

    double : 双精度浮点数

    两者的主要区别如下:

      01.在内存中占有的字节数不同

        单精度浮点数在机内存占4个字节

        双精度浮点数在机内存占8个字节

      02.有效数字位数不同

        单精度浮点数有效数字8位

        双精度浮点数有效数字16位

      03.数值取值范围

        单精度浮点数的表示范围:-3.40E+38~3.40E+38

        双精度浮点数的表示范围:-1.79E+308~-1.79E+308

      04.在程序中处理速度不同

        一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

    如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转

      例如:float  a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)

    注意:float是8位有效数字,第7位数字将会四舍五入

    面试题:

      1.java中3*0.1==0.3将会返回什么?true还是false?

       fale,因为浮点数不能完全精确的表示出来,一般会损失精度。

      2.java中float f = 3.4;是否正确?

         不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造  成精度损失,因此需要强制类型转换float f = (float)3.4;或者写成 float f = 3.4f;才可以。

    复制代码
    public static void main(String[] args) {
            System.out.println(3*0.1);
            System.out.println(3*0.1==0.3);
        //float是8位有效数字,第7位数字将会四舍五入 float a =1.32344435f; System.out.println(a); }
    复制代码

    输出结果:

  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/insist-bin/p/11106351.html
Copyright © 2011-2022 走看看