日期:2014-05-16  浏览次数:20300 次

JS应用--操作float型数值、获取两日期间隔天数

??? 这几天工作涉及到一些 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 日期比较 获取天数 ? 来讲,是一种进步,呵呵!

?

?