关于Java 安卓 NaN和infinity的问题

由于项目中很多东西要计算数字, java比Object-C坑爹多了, java有时候遇到算数异常会导致整个界面的数据都出不来, ios就没有此问题. 

记录下各种情况下的除法运算的结果:

  • 0/0  1/0 =>异常崩溃

         java中禁止整数除以整数0, 这种情况一定会报异常崩溃

  • 0.0f/0  0/0.0f  0.0f/0.0f =>NaN

       必须为浮点的运算, 被除数为0或者0f, 并且除数为0或者0f, 结果都为NaN, 判断方法有Float.isNaN()这个来判断

  • 1f/0 1f/0f 1/0f =>infinit无穷大​​​​​​​

        必须为浮点运算, 除数不为0, 被除数为0或者0f, 那么结果就为无穷大

 

在计算数据之前要先判断算数异常, 首先规避掉这种错误, 然后再在计算的过程中判断NaN或者无穷大的情况, 如果不在计算中判断,那就在取值的时候判断, 从单一职责模式来讲, 在计算的时候就处理是比较好的选择, 当然有时候是要对这些计算错误的情况做另外处理就按照自己项目的需求来

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值