当前位置: 代码迷 >> 综合 >> 解决Float.parseFloat(num)转化出现NaN的问题:用Float.isNaN(num1)判断转化值
  详细解决方案

解决Float.parseFloat(num)转化出现NaN的问题:用Float.isNaN(num1)判断转化值

热度:72   发布时间:2024-01-31 18:29:39.0

问题现象:

今天在给某个方法传入了一个int类型的0的值时,出现了以下报错:

Postman接口测试结果:


问题分析:

这是因为:

float number1 = Float.parseFloat(number.toString());

这个语句将字符串转化为float类型,而int类型0这个值的字符串"0";

对于float浮点数类型而言,0不是正常的浮点数;因此无法正常转化;

因此当传入的数据是0时,就会出现NaN报错:无法识别成数字.

具体的原因涉及到计算机底层存储数据时用到的位运算原则;有兴趣的小伙伴可以自行去了解一下.

这里我就提供一下解决方法.

可以通过

Float.isNaN(number1);

来对转化后的数据进行判断.

假如转化后时NaN则直接return 0;

注意:

这里是不能用number1==NaN来判断,因为NaN不等于NaN,比较特殊.


解决方法:

原代码:

修改为以下代码:

也就是在转化之前先判断一下.

Postman接口测试结果:

  相关解决方案