|
@@ -59,4 +59,43 @@ module.exports.Hms = (date, format = false) => {
|
|
|
const m = `${_date.getMinutes() < 10 ? `0${_date.getMinutes()}` : _date.getMinutes()}`;
|
|
|
const s = _date.getSeconds() < 10 ? `0${_date.getSeconds()}` : _date.getSeconds();
|
|
|
return format ? `${H}时${m}分${s}秒` : `${H}:${m}:${s}`;
|
|
|
+}
|
|
|
+
|
|
|
+module.exports.randomNum = (min = 0, max = 0, decimal=0) => {
|
|
|
+ // 获取数值的小数部分
|
|
|
+ const getDecimalNum = (data) => {
|
|
|
+ return Number(data.toString().split('.')[1]);
|
|
|
+ }
|
|
|
+ let min_z = Math.trunc(min); // 最小值的整数部分
|
|
|
+ let max_z = Math.trunc(max); // 最大值的整数部分
|
|
|
+ // 判断是否存在小数部分,不存在的话为0
|
|
|
+ let min_x = isNaN(getDecimalNum(min)) ? 0 : getDecimalNum(min); // 最小值的小数部分
|
|
|
+ let max_x = isNaN(getDecimalNum(max)) ? 0 : getDecimalNum(max); // 最大值的小数部分
|
|
|
+
|
|
|
+ // 区分有小数和没小数的情况
|
|
|
+ if (min_x > 0 || max_x > 0 || decimal > 0) {
|
|
|
+ // 整数部分随机数
|
|
|
+ let z = parseInt(String(Math.random() * (max_z - min_z + 1) + min_z), 10);
|
|
|
+ // 小数部分随机数
|
|
|
+ let x = 0;
|
|
|
+ // 小数部分随机数最大位数
|
|
|
+ let max_decimal = min_x.toString().length > max_x.toString().length ? min_x.toString().length : max_x.toString().length;
|
|
|
+ max_decimal = decimal > max_decimal ? decimal : max_decimal;
|
|
|
+ // 判断随机出的整数部分,是否等于最小值或者最大值
|
|
|
+ if(z == min_z || z == max_z){
|
|
|
+ if(z == min_z){
|
|
|
+ // 整数部分随机数等于最小值,那么应该从最小值的小数部分开始,到小数位数的最大值随机就可以
|
|
|
+ x = parseInt(String(Math.random() * (Math.pow(10, max_decimal) - min_x) + min_x), 10);
|
|
|
+ }else{
|
|
|
+ // 整数部分随机数等于最大值,那么应该从0开始,到最大值小数部分
|
|
|
+ x = parseInt(String(Math.random() * (max_x + 1)), 10);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 整数部分在最大最小值区间的,就从0到小数位数的最大值随机就可以
|
|
|
+ x = parseInt(String(Math.random() * (Math.pow(10, max_decimal))), 10);
|
|
|
+ }
|
|
|
+ return Number(`${z}.${x}`);
|
|
|
+ } else {
|
|
|
+ return parseInt(String(Math.random() * (max_z - min_z + 1) + min_z), 10);
|
|
|
+ }
|
|
|
}
|