java浮点运算的陷阱

本文详细介绍了Java中处理浮点数运算时遇到的特殊值Infinity(无穷大)和NAN(非数字)。Infinity通常表示一个数除以非常接近0的数得到的结果,而NAN则用于表示算术运算无法得出有效结果的情况。文章还提供了如何在Java中生成这些特殊值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先呢,i你要明白double和float。

Inifinity:
例如:syso(5.0/0.0+" 和"+0.0 /0.0);


浮点运算的0.0不是真正意义上的0,而是非常接近0

所以啊一个数/一个接近0的数,结果为无穷大。而在java浮点范围内Inifinity表示无穷大。

java若要使用无穷大可以:

double i=1.0/0.0

或者:

double i=Double.POSITIVE_INFINITY

NAN:

not a number 这些值的存在是为了在出现错误条件(譬如算术溢出,给负数开平方根,除以 0 等)下,可以用浮点值集合中的数字来表示所产生的结果。

java中的NAN是这么定义的:

public static final double NaN = 0.0d / 0.0;

还有NAN与任何数比较都返回false


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值