当前位置: 代码迷 >> Web前端 >> toFloat转浮点函数(精密度)
  详细解决方案

toFloat转浮点函数(精密度)

热度:520   发布时间:2012-10-30 16:13:36.0
toFloat转浮点函数(精度)
/**
		 * 将字符串或数字转换为指定精度的浮点数
		 * 
		 * @param F{String ||
		 *            Number} 要转换的字符串或浮点数
		 * @param len{Integer}
		 *            精度,默认小数点后两位
		 * @param returnNull{Boolean}
		 *            当F为非数字字符串时,返回null或原字符串,默认返回原字符串
		 */
		toFloat : function (F, len, returnNull) {
			len = len >= 0 ? len : 2;
			var f = parseFloat(F),nf;
			var offset = 0;
			if(!isNaN(f)){
				var str = f.toString().split(".");
				if(str.length==2){
					if(str[1].length > len){
						var si = parseInt(str[1].substr(0,len))+parseFloat("0." + str[1].charAt(len));
						str[1] = Math.round(si).toString();
						if(str[1].length > len){
							offset = 1;
							str[1]=str[1].substr(1,len);
						}
					}
				}
				str[0] = parseInt(str[0])+offset;
				nf = str.length > 1 && len!==0 ? str.join(".") : str[0];
			}
			return nf ? nf : (returnNull ? null : F);
		},