微信小程序计算出错 55
今天写小程序购物车,测试时发现小数第一位为1,2,3,4,6,7,8,9;乘3和3的倍数时会出错(15好像没有问题),只有位数5或者为整数没有问题,0.9计算也没有问题,...
今天写小程序购物车,测试时发现小数第一位为1,2,3,4,6,7,8,9;乘3和3的倍数时会出错(15好像没有问题),只有位数5或者为整数没有问题,0.9计算也没有问题,我只测试了前20个数,可能后面会有一些特例
展开
展开全部
浮点数的二进制如果不能被整除,比如0.1的二进制0.000110011....无限下去,由于存储空间有限,计算机会舍去最大长度后面的值,最后我们会得到一个近似的值,处理方法:1,把浮点转为整数计算,比如 0.1*3 = 0.1*10*3/10 ; 2,toFixed(1)保留小数位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根本原因是计算机所使用二进制01代码无法准确表示某些带小数位的十进制数据,不是小程序出错,用计算机计算都会出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
浮点类型计算会有这个末位数字问题,可四舍五入保留小数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以设置一下小数点的位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询