double类型数值比较的坑

double类型的数据不能直接用==比较

需要用包装类型的方法比较:

//如果 d1 和 d2 是double类型
if ( Double.doubleToLongBits(d1) == Double.doubleToLongBits(d2) )

//f1 和 f2 是d2是float类型
if( Float.floatToIntBits(f1) == Float.floatToIntBits(f2) )

这两个是native方法

public static native long doubleToRawLongBits(double var0);

public static native double longBitsToDouble(long var0);

转载于:https://blog.51cto.com/10440592/2123045

### 回答1: 两个 double 类型的数值可以是任何实数,可以是正数、负数或零,精度也可以是小数点后任意位数的数字。 例如,以下是两个 double 类型的数值: 1.234567890 -0.987654321 这两个数值可以进行各种算术运算,例如加法、减法、乘法和除法。 ### 回答2: 两个`double`类型的数值可以是两个小数,或者是一小一大的数值。 `double`是Java中一种用于表示浮点数的数据类型,可以用于存储较大或较小的数值。 例如,可以有两个`double`类型的数值:3.14和2.718。第一个数值3.14是一个较小的小数,代表圆周率的近似;第二个数值2.718是一个较大的小数,代表自然对数的底数的近似。这两个数值都可以用`double`类型来表示和存储。 另一个例子是,可以有两个`double`类型的数值:1000000000.0和0.00000001。第一个数值1,000,000,000.0是一个较大的数,代表十亿;而第二个数值0.00000001是一个较小的数,代表0.00000001。这两个数值也可以用`double`类型来表示和存储。 总之,`double`类型的数值可以是小数或大数,可以用于存储范围较广的,可以适用于很多计算和应用场景。 ### 回答3: 两个double类型数值是指属于浮点数类型的两个数值。浮点数类型是一种用于存储带小数点的数值的数据类型,它可以表示较大范围的数值,并具有一定的精度。 举例来说,可以假设两个double类型数值分别为3.14和2.71828。这两个数值都属于浮点数类型,因为它们带有小数点。 double类型数值在计算机中的存储方式采用二进制浮点数,即将数值拆分成符号位、指数位和尾数位,根据这三个部分来表示实际的数值。双精度浮点数(double)一般由64位来表示,其中符号位占用1位,指数位占用11位,尾数位占用52位。 通过使用double类型数值,我们可以进行各种数值计算操作,例如加法、减法、乘法、除法等。由于double类型具有较高的精度,可以满足大部分实际应用的需求。 需要注意的是,在进行浮点数的比较时需要小心,由于浮点数的存储方式存在一定的误差,相等的两个数值可能无法完全相等。因此,在比较double类型数值时,一般会使用浮点数的精度误差范围进行比较,而非直接判断是否相等。 综上所述,两个double类型数值是指属于浮点数类型的两个数值,它们可以进行各种数值计算操作,并通过浮点数的精度误差范围进行比较
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值