记录个bug
 
 
 
问题:
 
由于调用接口,后台需要传递一个数值,为120531784730937088,并且是integer类型,但是前端获取的值为字符串:"120531784730937088"
 
所以要将"120531784730937088"转换为number类型
 
var a = Number("120531784730937088")
 
打印a发现失去精度了,值为120531784730937090
 
 
 
原因:
 
js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。这个值为16位。
 
 
 
解决:(3种方式)
 
1. 后端改成接收字符串类型
 
2.控制值的长度
 
3.后端加个字符串a去映射这个number,然后传递a给后端