使用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);
posted @ 2022-10-28 13:35  番茄汤  阅读(361)  评论(0编辑  收藏  举报