最近在JS和Jquery遇到的一些问题的解决方法
阿债
posted @ 2009年7月22日 00:38
in 未分类
, 1673 阅读
1. JS中数值字符串相加
var a='2.1'; var b='13';
var c=a b; 则c的值为 2.113,因为 在字符串间是连接符。
如果要求a与b的和,则先要把a、b用parseFloat()或parseInt()转化为浮点数、整数
黑客方法 [color=#DC143C]var c=a-0 b;[/color] 因为[color=#DC143C] - [/color]不管是在数值还是字符串间都是减法运算,对字符串JS会自动把它转化为数值。
2. JS中浮点数的多余的精度
var a= 2.6; var b=2.3;
var c = a-b;
那么c的值是多少?0.3?不对,它的值是 0.3000005 0.29999997之类,总之就是不等于0.3。汗!
产生这个情况的原因是浮点数在JS中的存储方式,不仅JS,严格符合ECAMScript规范的脚本语言都有相同的问题。
解决方法 [color=#DC143C]var c = Math.round((a-b)*10)/10;[/color] 产生一位小数的精度。
为什么不直接用 (a-b)*10/10?因为当 c=0.29999997时,计算结果变成了我们不想看到的0.2。
3. ...