fantasticDream

数据类型----(浮点数类型)

 Float类型又被称为单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求.

double表示这种类型的数值精度是float类型的两倍,又被成为双精度,绝大部分应用程序都采用double类型

java浮点类型常量有两种表示形式

十进制数形式,例如:

3.14    314.0   0.314

科学计数法形式,:

3.14e2   314E2 314E-2

Double f=314e2; //314*10^2 -->31400.0

Double F2=314e-2; // 314*10^(-2) -->3.14

浮点类型默认为double类型,要将其变为float类型,需要在后面增加F/f. 3.14F

 使用总结:

默认是double

浮点数存在含入误差,很多数字不是精确表示,如果需要进行不产生含入误差的精确数字计算,需要使用bigdecimal .

bigdecimal(可以表示大"小数")

BigInteger(可以表示大整数) 

 

 最好避免比较中的使用浮点数.

类型:

Float 占用存储空间4字节  表数范围 E 10    -3.403E38~3.403E38

Double 占用存储空间8字节 表数范围 -1.798E308~1.798E308

Float f=0.1F;

Double d=1.0/10;

System.out.println(f==d);  //false

// 测试浮点数
// 浮点数并不能表示处所有的小数,它是有舍入误差的
public class TestFloatType {
    public static void main(String[] args) {
        // 浮点数常量默认类型是double
        /*
         * Float 占用存储空间4字节
         * Double 占用存储空间8字节
         */
        // double d = 3.14;
        // 把8个字节放到4个字节里面有可能损失精度
        // 浮点类型默认为double类型,要将其变为float类型,需要在后面增加F/f.
        // float f=6.28F;
        // 科学计数法
        // 采用科学计数法的写法
        double d2 = 314e-2;
        System.out.println(d2);
        float f = 0.1F;
        double d = 1.0 / 10;
        /* long的字节数为8,可以表述很大的数,但是如果不够用可以使用BigInteger(可以表示大整数) */
        /*
         * 浮点数存在含入误差,很多数字不是精确表示,如果需要进行不产生含入误差的精确数字计算,需要使用bigdecimal 类.
         * 最好避免比较中的使用浮点数.
         */
        // bigdecimal(可以表示大"小数")
        System.out.println(f == d);// false
    }
}

posted on 2022-05-12 13:04  神奇的梦  阅读(294)  评论(0)    收藏  举报

导航