现象:
1.1+3.2 = 4.300000000000001
0.1+3.2 = 3.3000000000000003
2.1+3.2 = 5.300000000000001
3.2+3.2 = 6.4
3.3+3.3 = 6.6
上面是小数点一位的情况,发现最后一位是3的情况,就会出现精度的问题。
查看文档及相关书籍,我找到两种四舍五入的方法:
1. (Math.round(5.999 / .01) * .01 显示90.34
2. var num:Number = 5.999;
var tmp = num..toFixed(2); //tmp = 6.00
虽然以上两种方法都可以,个人建议使用第二种。
总算把四舍五入的问题解决,现在开始往服务端post数据,比如把金额2.01推送上去,但是到服务端,
只要有小数的金额字符串,小数就会无法encode。
既然不能,找了很多资料也办法解决,既然这样就用最笨的方法,在客户端乘以100,然后服务端除以100,总算解决。
1.1+3.2 = 4.300000000000001
0.1+3.2 = 3.3000000000000003
2.1+3.2 = 5.300000000000001
3.2+3.2 = 6.4
3.3+3.3 = 6.6
上面是小数点一位的情况,发现最后一位是3的情况,就会出现精度的问题。
查看文档及相关书籍,我找到两种四舍五入的方法:
1. (Math.round(5.999 / .01) * .01 显示90.34
2. var num:Number = 5.999;
var tmp = num..toFixed(2); //tmp = 6.00
虽然以上两种方法都可以,个人建议使用第二种。
总算把四舍五入的问题解决,现在开始往服务端post数据,比如把金额2.01推送上去,但是到服务端,
只要有小数的金额字符串,小数就会无法encode。
既然不能,找了很多资料也办法解决,既然这样就用最笨的方法,在客户端乘以100,然后服务端除以100,总算解决。