//#region 函数区域 Namespace.register("U.UF.Math"); /** * 获取一个随机数 * * @param {number} 随机数的长度 * @return {number} 随机数 */ U.UF.Math.getRandom = function (n) { return Math.floor(Math.random() * n + 1); } /** * 获取两个数字间的随机数 * * @param {number} 位置的开始 * @param {number} 位置的结束 * @return {number} 随机数 */ U.UF.Math.randomRange = function (m, n) { return Math.floor(Math.random() * Math.abs(n - m)) + (m > n ? n : m); } /** * 冒泡排序法的封装 * * @param {array} 排序数组 * @param {string} 排序类型 * @param {function} 判断执行函数 * @param {number} 是否是升序降序 ----------[-1] 升序 ----------[1] 降序 */ U.UF.Math.sequence = function (arr, str, fun, num) { if (arr) {//是否存在数组 var _num; arr = arr.sort(function (obj1, obj2) {//arr.sort()根据条件,对json数组进行排序 if (fun(obj1[str], obj2[str])) {//是否是升序降序 _num = (-1) * (num || 1); //num=-1升序 } else { _num = 1 * (num || 1); //num=1 降序 } return _num; }); return arr; }; } /** *浮点数运算函数 JavaScript浮点运算的一个bug。 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 * 数字计算 解决浮点的bug * * @param {number} 数字1 * @param {number} 数字2 * @param {string} 连系符号 + - * / */ U.UF.Math.floatOperate = function (number1, number2, operator) { var i, //循环初始化 _pow, ////用于存放数据的变量 _strarr = [String(number1), String(number2)]; //用于存放数据的数组 //获取变成整数差几位 for (i = 0; i < 2; i++) { _strarr[i + 2] = _strarr[i].length - _strarr[i].indexOf(".") - 1; } //变成整数的幂 _pow = Math.pow(10, Math.max(_strarr[2], _strarr[3])); //运算得出结果 return (eval("0," + _strarr[0] * _pow + operator + _strarr[1] * _pow)) / _pow; }