使用parseFloat()生成随机数的时候进行修约会出现“-0”
今天遇到了个很奇怪的坑
使用parseFloat()生成随机数的时候进行修约会出现“-0”这个字符串
记得parseFloat()是返回的浮点数来着,最开始以为是精度的问题
后来调试的时候发现是因为生成随机数的时候
val=parseFloat((Math.random() * (max - min) + min))
如果val>0.5&&val<0的时候并且digits保留小数位数为0的时候
就会出现这种情况“-0”
主要是因为toFixed在四舍五入的时候返回的数据是个字符串
“-0.21654321”.toFixed(0)="-0"
解决方式:
var res = Math.abs(Number(val.toFixed(digits))) == 0 ? "0" : val.toFixed(digits);