1.获取两个值之间的随机数
/**
* 获取两个值之间的随机数
* @method random
* @param min {number} 最小值
* @param max {number} 最大值
* @returns {number}
*/
random(min, max) {
if (max == null) {
max = min;
min = 0;
}
return min + Math.floor(Math.random() * (max - min + 1));
},
dotNum (value) {
value = String(value);
var start = value.indexOf('.');
return start == -1 ? 0 : value.substring(start + 1).length;
},
2.保留N位小数
/**
* 保留N位小数
* @method toFixed
* @param value
* @param num
* @returns {*|string}
*/
toFixed(value, num) {
return this.dotNum(value) > num ? value.toFixed(num) : value;
},
3.四舍五入保留N位小数
/**
* 四舍五入保留N位小数
* @method toRoundFixed
* @param value
* @param precision 精度
* @returns {*}
*/
round(value,precision) {
// Tip:判断小数点位置算法太过好性能,直接删掉判断
// if(this.dotNum(value) > num){
var p = Math.pow(10,precision);
value = Math.round(value * p);
return value / p;
// }
},
4.向下取整保留N位小数
// 向下取整保留N位小数
floor(value,precision) {
value = value * 10 * precision;
value = Math.floor(value);
return value / (10 * precision);
},
5.向上取整保留N位小数
ceil(value,precision) {
value = value * 10 * precision;
value = Math.ceil(value);
return value / (10 * precision);
},
6.把精度误差的小数转成正常小数
/**
* 把精度误差的小数转成正常小数 eg:Sun.Math.strip(0.09999999999999998)=0.1
* @param num
* @param precision
* @returns {number}
*/
strip (num,precision){
precision = precision || 15;
return +parseFloat(Number(num).toPrecision(precision));
}