在做项目的时候遇到前端数据呈现NAN的情况,第一反应是以为传进来的是一个非数字字符串。
因为在后端传过来数据的时候也在前端做了一次运算。
所以把数据用在js中对数据都用了强制转换,转换成数字类型。
let a = Number(a)
但是发现页面呈现的数据还是NAN。
这时候跑来后端看了一眼,发现采用的数值类型是double,而且在后端的时候也对数据进行了运算。
double rate = (proplemSum / (checkSum * 1.0)) * 100
经过调优发现double类型的数据当分母的数值趋近0的时候,返回来的数值就是一个NAN。
所以在下方加了一段代码,让他的数值是NAN的时候,返回的是0
if(Double.isNaN(rate)){
rate = 0.00;
}
至此问题解决。