浮点数和浮点数误差问题

  • 浮点数
    1.默认是double。
    2.浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
    3.最好避免比较中使用浮点数。
类型     占用存储空间   表述范围
float    4字节        -3.403E38-3.403E38    
double   8字节        -1.798E308-1.798E308
  • float类型又被称为单精度类型,尾数精确到7位有效数组字,在很多情况下,float类型的精度很难满足需求。
  • double表示这种类型的数值精度是float类型的两倍,又被称为双精度,绝大部分应用程序都采用double类型。
  • Java浮点数类型常量有两种表示形式
    1.十进制数形式,例如:3.14 314.0 0.314
    2.科学计数法形式,例如:314e2 314E2 314E-2
  • 浮点数数值默认为double类型,要将其变为flaot类型,需要在后面增加F/f,如:3.14F
package test;

public class TestFloatType {
    public static void main(String[] args) {
        double d = 3.14; //浮点数常量默认类型是double
        float f = 6.28f;  
        double d2 = 314e-2; //采用科学计数法的写法
        System.out.println(d2);

        //避免用浮点数进行比较
        float g = 0.1f;
        double h = 1.0/10;
        System.out.println(g == h); // false
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值