日期:2014-05-16 浏览次数:20300 次
??? 这几天工作涉及到一些 JS 的常见应用,在此总结一下,以备不时之需。
?
1. Js 操作float型数值加减问题(直接运算会涉及精度问题)
//该float乘以10的n次方(n为小数位数),即把该float放大为整型再进行加或减运算 Number.prototype.getB = function(){ var arr = this.toString().split('.'); return arr[1]? arr[1].length : 0; } Number.prototype.getP = function(to){ return Math.pow(10, Math.max(this.getB(), to.getB())); } Number.prototype.add = function(to){ var p = this.getP(to); return (this * p + to * p) / p; } Number.prototype.sub = function(to){ var p = this.getP(to); return (this * p - to * p) / p; }
应用:
var a = 12.23; //float 型数值
var b = 58.62; //float 型数值
alert(a.add(b));
alert(b.sub(a));
利用 toFixed 方法来截取小数点后保留几位。
?
2.? 获取两日期间隔天数
/** * 计算两日期之间间隔天数 * * @param string s 开始时间串 * @param string e 结束时间串 */ function interval(startDate, endDate){ var d1 = new Date(startDate.replace(/-/g, "/")); var d2 = new Date(endDate.replace(/-/g, "/")); var time = d2.getTime() - d1.getTime(); return parseInt(time / (1000 * 60 * 60 * 24)); }
?? PS:个人感觉此种方式比较不错,相对之前博客中的介绍 PHP 日期比较 获取天数 ? 来讲,是一种进步,呵呵!
?
?