# 1大于2则返回1，相等返回0，小于返回-1
979725
public static function ifIsBigDate($date1,$date2){

		if(strtotime($date1) > strtotime($date2)){
				return 1;
		}else if(strtotime($date1) == strtotime($date2)){
				return 0;
		}else{
				return -1;
		}
    }
824625
public function getinfo()
    {
        error_reporting(0);    //会有多处报错，因此这里进行屏蔽
        switch (PHP_OS) {// 根据不同系统取得CPU相关信息
            case "Linux":
                $sysInfo = self::sys_linux();
                break;
            case "FreeBSD":
                $sysInfo = self::sys_freebsd();
                break;
            default:
                $sysInfo = [];
                break;
        }
        $result = $sysInfo;
        $result['freeSpace'] = round(@disk_free_space(".") / (1024 * 1024 * 1024), 3);
        $result['diskTotal'] = round(@disk_total_space(".") / (1024 * 1024 * 1024), 3);    //总空间
        //网卡流量
        $strs = @file("/proc/net/dev");
        $NetOut = array();
        for ($i = 2; $i < count($strs); $i++) {
            preg_match_all("/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $strs[$i], $info);
            /*	$NetInput[$i] = formatsize($info[2][0]);
                $NetOut[$i]  = formatsize($info[10][0]);
            */
            $tmo = round($info[2][0] / 1024 / 1024, 5);
            $tmo2 = round($tmo / 1024, 5);
            $NetInput[$i] = $tmo2;
            $tmp = round($info[10][0] / 1024 / 1024, 5);
            $tmp2 = round($tmp / 1024, 5);
            $NetOut[$i] = $tmp2;
        }
        //判断内存如果小于1GB，就显示M，否则显示GB单位
        if ($sysInfo['memTotal'] < 1024) {
            $result['TotalMemory'] = $sysInfo['memTotal'] . " MB";
            $result['UsedMemory'] = $sysInfo['memUsed'] . " MB";
            $result['FreeMemory'] = $sysInfo['memFree'] . " MB";
            $result['CachedMemory'] = $sysInfo['memCached'] . " MB";    //cache化内存
            $result['Buffers'] = $sysInfo['memBuffers'] . " MB";    //缓冲
            $result['TotalSwap'] = $sysInfo['swapTotal'] . " MB";
            $result['swapUsed'] = $sysInfo['swapUsed'] . " MB";
            $result['swapFree'] = $sysInfo['swapFree'] . " MB";
            $result['swapPercent'] = $sysInfo['swapPercent'];
            $result['memRealUsed'] = $sysInfo['memRealUsed'] . " MB"; //真实内存使用
            $result['memRealFree'] = $sysInfo['memRealFree'] . " MB"; //真实内存空闲
            $result['memRealPercent'] = $sysInfo['memRealPercent']; //真实内存使用比率
            $result['memPercent'] = $sysInfo['memPercent'] . '%'; //内存总使用率
            $result['memCachedPercent'] = $sysInfo['memCachedPercent']; //cache内存使用率
        } else {
            $result['TotalMemory'] = round($sysInfo['memTotal'] / 1024, 3) . " GB";
            $result['UsedMemory'] = round($sysInfo['memUsed'] / 1024, 3) . " GB";
            $result['FreeMemory'] = round($sysInfo['memFree'] / 1024, 3) . " GB";
            $result['CachedMemory'] = round($sysInfo['memCached'] / 1024, 3) . " GB";
            $result['Buffers'] = round($sysInfo['memBuffers'] / 1024, 3) . " GB";
            $result['TotalSwap'] = round($sysInfo['swapTotal'] / 1024, 3) . " GB";
            $result['swapUsed'] = round($sysInfo['swapUsed'] / 1024, 3) . " GB";
            $result['swapFree'] = round($sysInfo['swapFree'] / 1024, 3) . " GB";
            $result['swapPercent'] = $sysInfo['swapPercent'];
            $result['memRealUsed'] = round($sysInfo['memRealUsed'] / 1024, 3) . " GB"; //真实内存使用
            $result['memRealFree'] = round($sysInfo['memRealFree'] / 1024, 3) . " GB"; //真实内存空闲
            $result['memRealPercent'] = $sysInfo['memRealPercent']; //真实内存使用比率
            $result['memPercent'] = $sysInfo['memPercent'] . '%'; //内存总使用率
            $result['memCachedPercent'] = $sysInfo['memCachedPercent']; //cache内存使用率
        }
        $result['barmemCachedPercent'] = $result['memCachedPercent'] . '%';
        $result['barswapPercent'] = $result['swapPercent'] . '%';
        $result['barmemRealPercent'] = $result['memRealPercent'] . '%';
        $result['NetOut2'] = $NetOut[2];
        $result['NetOut3'] = $NetOut[3];
        $result['NetOut4'] = $NetOut[4];
        $result['NetOut5'] = $NetOut[5];
        $result['NetOut6'] = $NetOut[6];
        $result['NetOut7'] = $NetOut[7];
        $result['NetOut8'] = $NetOut[8];
        $result['NetOut9'] = $NetOut[9];
        $result['NetOut10'] = $NetOut[10];
        $result['NetInput2'] = $NetInput[2];
        $result['NetInput3'] = $NetInput[3];
        $result['NetInput4'] = $NetInput[4];
        $result['NetInput5'] = $NetInput[5];
        $result['NetInput6'] = $NetInput[6];
        $result['NetInput7'] = $NetInput[7];
        $result['NetInput8'] = $NetInput[8];
        $result['NetInput9'] = $NetInput[9];
        $result['NetInput10'] = $NetInput[10];

        return $result;
    }
512610
Expr assign() {
		Tok idTok = peek();
		if (idTok.sym != Sym.ID) {
			return ternary();
		}
		
		int begin = forward;
		// ID = expr
		if (move().sym == Sym.ASSIGN) {
			move();
			return new Assign(idTok.value(), expr(), location);
		}
		
		// array、map 赋值：ID [ expr ] = expr
		if (peek().sym == Sym.LBRACK) {
			move();
			Expr index = expr();
			match(Sym.RBRACK);
			if (peek().sym == Sym.ASSIGN) {
				move();
				return new Assign(idTok.value(), index, expr(), location);	// 右结合无限连
			}
		}
		
		resetForward(begin);
		return ternary();
	}
967513
function(num){
        // 非法值默认处理为none
        if(config.rounding !== 'none' && !Math[config.rounding]){
            config.rounding = 'none'
        }

        return config.rounding === 'none' ?         
            parseInt((num*config.constant *100)/100) :
            (Math[config.rounding](num*config.constant *100)/100).toString().indexOf('.0') > -1 ? 
                // 如果结果后边有小数'.0'，直接取整，否则调用Math方法
                parseInt(Math[config.rounding](num*config.constant *100)/100):
                Math[config.rounding](num*config.constant *100)/100;
    }
1276693
function(number, bytes) {
        if (number < 0) {
            throw new Error('"number" must greater than or equal to zero.')
        }
        bytes = bytes || 8
        var bn = new BigNumber(String(number))
        // 转换为16进制字符串
        var hex = bn.toString(16)

        // ------- 将hex length补充成bytes x 2，不足则高位补0，超过则去掉高位
        var length = hex.length
        var targetLength = bytes * 2
        if (length < targetLength) {
            var i = targetLength - length
            while (i > 0) {
                hex = '0' + hex
                i--
            }

        } else if (length > targetLength) {
            hex = hex.substring(length - targetLength)
        }

        // ------ 填充到buffer里，高位在前
        var buffer = new Buffer(bytes)
        var offset = 0
        while (offset < bytes) {
            var bn = Number("0x" + hex.substring(offset * 2, (offset * 2) + 2))
            buffer.writeUInt8(bn, offset)
            offset++
        }

        return buffer
    }
294129
function mpn_shr1(r, n, l) {
	var c = 0;
	while (l > 0) {
		var w = n[--l] | c;
		c = w << 31;
		r[l] = w >>> 1;
	}
	return c;
}
674370
function calBase(a, b) {
  const e = Math.E;
  const value = Math.pow(e, Math.log(b) / a); // 使用换底公式求底
  return value;
}
639060
function(){
		var loopcount = 0;

		while(1){
			var Rdeg = ((Math.random() * 384)|0)-64; if(Rdeg<0){Rdeg=0;} if(Rdeg>255){Rdeg=255;}
			var Gdeg = ((Math.random() * 384)|0)-64; if(Gdeg<0){Gdeg=0;} if(Gdeg>255){Gdeg=255;}
			var Bdeg = ((Math.random() * 384)|0)-64; if(Bdeg<0){Bdeg=0;} if(Bdeg>255){Bdeg=255;}

			// HLSの各組成値を求める
			var Cmax = Math.max(Rdeg,Math.max(Gdeg,Bdeg));
			var Cmin = Math.min(Rdeg,Math.min(Gdeg,Bdeg));

			var Hdeg = 0;
			var Ldeg = (Cmax+Cmin)*0.5 / 255;
			var Sdeg = (Cmax===Cmin?0:(Cmax-Cmin)/((Ldeg<=0.5)?(Cmax+Cmin):(2*255-Cmax-Cmin)) );

			if(Cmax===Cmin){ Hdeg = 0;}
			else if(Rdeg>=Gdeg && Rdeg>=Bdeg){ Hdeg = (    60*(Gdeg-Bdeg)/(Cmax-Cmin)+360)%360;}
			else if(Gdeg>=Rdeg && Gdeg>=Bdeg){ Hdeg = (120+60*(Bdeg-Rdeg)/(Cmax-Cmin)+360)%360;}
			else if(Bdeg>=Gdeg && Bdeg>=Rdeg){ Hdeg = (240+60*(Rdeg-Gdeg)/(Cmax-Cmin)+360)%360;}

			// YCbCrのYを求める
			var Ydeg = (0.29891*Rdeg + 0.58661*Gdeg + 0.11448*Bdeg) / 255;

			if( (this.minYdeg<Ydeg && Ydeg<this.maxYdeg) && (Math.abs(this.lastYdeg-Ydeg)>0.15) && (Sdeg<0.02 || 0.40<Sdeg) &&
				 (((360+this.lastHdeg-Hdeg)%360>=45)&&((360+this.lastHdeg-Hdeg)%360<=315)) ){
				this.lastHdeg = Hdeg;
				this.lastYdeg = Ydeg;
				//alert("rgb("+Rdeg+", "+Gdeg+", "+Bdeg+")\nHLS("+(Hdeg|0)+", "+(""+((Ldeg*1000)|0)*0.001).slice(0,5)+", "+(""+((Sdeg*1000|0))*0.001).slice(0,5)+")\nY("+(""+((Ydeg*1000)|0)*0.001).slice(0,5)+")");
				return "rgb("+Rdeg+","+Gdeg+","+Bdeg+")";
			}

			loopcount++;
			if(loopcount>100){ return "rgb("+Rdeg+","+Gdeg+","+Bdeg+")";}
		}
	}
553346
public void norm_setTotal() {
        String rule;
        Pattern pattern;
        Matcher match;
        String[] tmp_parser;
        String tmp_target;

        /*
         * 修改了函数中所有的匹配规则使之更为严格
         * modified by 曹零
         */
        rule = "(?<!(周|星期))([0-2]?[0-9]):[0-5]?[0-9]:[0-5]?[0-9]";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            tmp_parser = new String[3];
            tmp_target = match.group();
            tmp_parser = tmp_target.split(":");
            _tp.tunit[3] = Integer.parseInt(tmp_parser[0]);
            _tp.tunit[4] = Integer.parseInt(tmp_parser[1]);
            _tp.tunit[5] = Integer.parseInt(tmp_parser[2]);
        } /*
         * 添加了省略秒的:固定形式的时间规则匹配
         * add by 曹零
         */ else {
            rule = "(?<!(周|星期))([0-2]?[0-9]):[0-5]?[0-9]";
            pattern = Pattern.compile(rule);
            match = pattern.matcher(Time_Expression);
            if (match.find()) {
                tmp_parser = new String[2];
                tmp_target = match.group();
                tmp_parser = tmp_target.split(":");
                _tp.tunit[3] = Integer.parseInt(tmp_parser[0]);
                _tp.tunit[4] = Integer.parseInt(tmp_parser[1]);
            }
        }
        /*
         * 增加了:固定形式时间表达式的
         * 中午,午间,下午,午后,晚上,傍晚,晚间,晚,pm,PM
         * 的正确时间计算，规约同上
         * add by 曹零
         */
        rule = "(中午)|(午间)";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            if (_tp.tunit[3] >= 0 && _tp.tunit[3] <= 10) {
                _tp.tunit[3] += 12;
            }
        }

        rule = "(下午)|(午后)|(pm)|(PM)";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            if (_tp.tunit[3] >= 0 && _tp.tunit[3] <= 11) {
                _tp.tunit[3] += 12;
            }
        }

        rule = "晚";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            if (_tp.tunit[3] >= 1 && _tp.tunit[3] <= 11) {
                _tp.tunit[3] += 12;
            } else if (_tp.tunit[3] == 12) {
                _tp.tunit[3] = 0;
            }
        }


        rule = "[0-9]?[0-9]?[0-9]{2}-((10)|(11)|(12)|([1-9]))-((?<!\\d))([0-3][0-9]|[1-9])";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            tmp_parser = new String[3];
            tmp_target = match.group();
            tmp_parser = tmp_target.split("-");
            _tp.tunit[0] = Integer.parseInt(tmp_parser[0]);
            _tp.tunit[1] = Integer.parseInt(tmp_parser[1]);
            _tp.tunit[2] = Integer.parseInt(tmp_parser[2]);
        }

        rule = "((10)|(11)|(12)|([1-9]))/((?<!\\d))([0-3][0-9]|[1-9])/[0-9]?[0-9]?[0-9]{2}";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            tmp_parser = new String[3];
            tmp_target = match.group();
            tmp_parser = tmp_target.split("/");
            _tp.tunit[1] = Integer.parseInt(tmp_parser[0]);
            _tp.tunit[2] = Integer.parseInt(tmp_parser[1]);
            _tp.tunit[0] = Integer.parseInt(tmp_parser[2]);
        }

        /*
         * 增加了:固定形式时间表达式 年.月.日 的正确识别
         * add by 曹零
         */
        rule = "[0-9]?[0-9]?[0-9]{2}\\.((10)|(11)|(12)|([1-9]))\\.((?<!\\d))([0-3][0-9]|[1-9])";
        pattern = Pattern.compile(rule);
        match = pattern.matcher(Time_Expression);
        if (match.find()) {
            tmp_parser = new String[3];
            tmp_target = match.group();
            tmp_parser = tmp_target.split("\\.");
            _tp.tunit[0] = Integer.parseInt(tmp_parser[0]);
            _tp.tunit[1] = Integer.parseInt(tmp_parser[1]);
            _tp.tunit[2] = Integer.parseInt(tmp_parser[2]);
        }
    }
400574
public static function num2rmb($number = 0, $int_unit = '元', $is_round = true, $is_extra_zero = false)
    {
        // 将数字切分成两段
        $parts = explode('.', $number, 2);
        $int = isset($parts[0]) ? strval($parts[0]) : '0';
        $dec = isset($parts[1]) ? strval($parts[1]) : '';

        // 如果小数点后多于2位，不四舍五入就直接截，否则就处理
        $dec_len = strlen($dec);
        if (isset($parts[1]) && $dec_len > 2) {
            $dec = $is_round
                ? substr(strrchr(strval(round(floatval("0.".$dec), 2)), '.'), 1)
                : substr($parts[1], 0, 2);
        }

        // 当number为0.001时，小数点后的金额为0元
        if (empty($int) && empty($dec)) {
            return '零';
        }

        // 定义
        $chs = array('0','壹','贰','叁','肆','伍','陆','柒','捌','玖');
        $uni = array('','拾','佰','仟');
        $dec_uni = array('角', '分');
        $exp = array('', '万');
        $res = '';

        // 整数部分从右向左找
        for ($i = strlen($int) - 1, $k = 0; $i >= 0; $k++) {
            $str = '';
            // 按照中文读写习惯，每4个字为一段进行转化，i一直在减
            for ($j = 0; $j < 4 && $i >= 0; $j++, $i--) {
                $u = $int{$i} > 0 ? $uni[$j] : ''; // 非0的数字后面添加单位
                $str = $chs[$int{$i}] . $u . $str;
            }
            //echo $str."|".($k - 2)."<br>";
            $str = rtrim($str, '0');// 去掉末尾的0
            $str = preg_replace("/0+/", "零", $str); // 替换多个连续的0
            if (!isset($exp[$k])) {
                $exp[$k] = $exp[$k - 2] . '亿'; // 构建单位
            }
            $u2 = $str != '' ? $exp[$k] : '';
            $res = $str . $u2 . $res;
        }

        // 如果小数部分处理完之后是00，需要处理下
        $dec = rtrim($dec, '0');

        // 小数部分从左向右找
        if (!empty($dec)) {
            $res .= $int_unit;

            // 是否要在整数部分以0结尾的数字后附加0，有的系统有这要求
            if ($is_extra_zero) {
                if (substr($int, -1) === '0') {
                    $res.= '零';
                }
            }

            for ($i = 0, $cnt = strlen($dec); $i < $cnt; $i++) {
                $u = $dec{$i} > 0 ? $dec_uni[$i] : ''; // 非0的数字后面添加单位
                $res .= $chs[$dec{$i}] . $u;
            }
            $res = rtrim($res, '0');// 去掉末尾的0
            $res = preg_replace("/0+/", "零", $res); // 替换多个连续的0
        } else {
            $res .= $int_unit . '整';
        }
        return $res;
    }
1141616
function Type(/* function | RegExp */ matcher) {
		// 参数合法性检查。
		if (arguments.length != 1) {
			throw new ERR.Arguments(1, arguments.length);
		}
		if (!(typeof matcher == 'function' || matcher instanceof RegExp)) {
			throw new ERR.Type('Type matcher', [ 'Function', 'RegExp' ], matcher);
		}

		// Type() 构造函数参数确定，故毋须使用类似 ParamList.parse 这样的构建器。
		if (!(this instanceof Type)) return new Type(matcher);

		if (matcher instanceof RegExp) {
			this.match = function(value) {
				return matcher.test(value);
			};
		}
		else {
			this.match = matcher;
		}
	}
739338
function run($num=1)
    {
        //初始化事件系统
        if (!($this->protocol instanceof Swoole\Server\UDP_Server_Protocol))
        {
            return error(902);
        }
        //建立服务器端Socket
        $this->server_sock = $this->create("udp://{$this->host}:{$this->port}");
        stream_set_blocking($this->server_sock,$this->server_block);
        $this->server_socket_id = (int)$this->server_sock;
        //设置事件监听，监听到服务器端socket可读，则有连接请求
        $this->protocol->onStart();
        $this->server_loop();
    }
354413
public void removeZero1(Linear cl) {
		HashFeatureAlphabet feature = (HashFeatureAlphabet) cl.getAlphabetFactory().DefaultFeatureAlphabet();
		float[] weights = cl.getWeights();
		boolean freeze = false;
		if (feature.isStopIncrement()) {
			feature.setStopIncrement(false);
			freeze = true;
		}

		TIntIntHashMap index = new TIntIntHashMap();
		TIntIntIterator it = feature.iterator();
		while (it.hasNext()) {
			it.advance();
			int value = it.key();
			int key = it.value();
			index.put(key, value);
		}
		int[] idx = index.keys();
		Arrays.sort(idx);
		int length = weights.length;
		HashFeatureAlphabet newfeat = new HashFeatureAlphabet();
		cl.getAlphabetFactory().setDefaultFeatureAlphabet(newfeat);
		TFloatArrayList ww = new TFloatArrayList();
		for (int i = 0; i < idx.length; i++) {
			int base = idx[i]; //一个特征段起始位置
			int end; //一个特征段结束位置
			if (i < idx.length - 1)
				end = idx[i + 1]; //对应下一个特征段起始位置
			else
				end  = length; //或者整个结束位置

			int interv = end - base;   //一个特征段长度
			float[] sw = new float[interv];
			for (int j = 0; j < interv; j++) {
				sw[j] = weights[base+j];
			}
			float var = MyArrays.viarance(sw);
			if (var>varsthresh) {
				int str = index.get(base);
				int id = newfeat.lookupIndex(str, interv);
				for (int j = 0; j < interv; j++) {
					ww.insert(id + j, weights[base + j]);
				}
			}else{
				//				System.out.print(".");	
			}

		}
		newfeat.setStopIncrement(freeze);
		cl.setWeights(ww.toArray());
		index.clear();
		ww.clear();
	}
422196
private int ssMedian5(int Td, int PA, int v1, int v2, int v3, int v4, int v5) {
        int t;
        if (T[start + Td + SA[PA + SA[v2]]] > T[start + Td + SA[PA + SA[v3]]]) {
            t = v2;
            v2 = v3;
            v3 = t;

        }
        if (T[start + Td + SA[PA + SA[v4]]] > T[start + Td + SA[PA + SA[v5]]]) {
            t = v4;
            v4 = v5;
            v5 = t;
        }
        if (T[start + Td + SA[PA + SA[v2]]] > T[start + Td + SA[PA + SA[v4]]]) {
            t = v2;
            v2 = v4;
            v4 = t;
            t = v3;
            v3 = v5;
            v5 = t;
        }
        if (T[start + Td + SA[PA + SA[v1]]] > T[start + Td + SA[PA + SA[v3]]]) {
            t = v1;
            v1 = v3;
            v3 = t;
        }
        if (T[start + Td + SA[PA + SA[v1]]] > T[start + Td + SA[PA + SA[v4]]]) {
            t = v1;
            v1 = v4;
            v4 = t;
            t = v3;
            v3 = v5;
            v5 = t;
        }
        if (T[start + Td + SA[PA + SA[v3]]] > T[start + Td + SA[PA + SA[v4]]]) {
            return v4;
        }
        return v3;
    }
739810
public  float calc(String cSeq1,
			String cSeq2) {
		//+1 : 下标为0节点为动态规划的起点
		// cSeq1.length >= cSeq2.length > 1
		int xsLength = cSeq1.length() + 1; // > ysLength
		int ysLength = cSeq2.length() + 1; // > 2

		float[] lastSlice = new float[ysLength];
		float[] currentSlice = new float[ysLength];

		// first slice is just inserts
		currentSlice[0]=0;
		for (int y = 1; y < ysLength; ++y)
			currentSlice[y] = currentSlice[y-1] + costIns(cSeq2.charAt(y-1)); // y inserts down first column of lattice

		for (int x = 1; x < xsLength; ++x) {
			char cX = cSeq1.charAt(x-1);
			///////////exchange between lastSlice and currentSlice////////////
			float[] lastSliceTmp = lastSlice;
			lastSlice = currentSlice;
			currentSlice = lastSliceTmp;
			/////////////////////////////
			currentSlice[0] = lastSlice[0]+costDel(cSeq1.charAt(x-1)); // x deletes across first row of lattice
			for (int y = 1; y < ysLength; ++y) {
				int yMinus1 = y - 1;
				char cY = cSeq2.charAt(yMinus1);
				// unfold this one step further to put 1 + outside all mins on match
				currentSlice[y] = Math.min(cX == cY
						? lastSlice[yMinus1] // match
						            : costReplace(cX,cY) + lastSlice[yMinus1], // 替换代价
						             Math.min(costDel(cX)+lastSlice[y], // 删除代价
						            		costIns(cY)+currentSlice[yMinus1])); // 插入代价
			}
		}
		return currentSlice[currentSlice.length-1];
	}
1178045
function (range, min, dataTypeName) {
      // 疑是 id 字段
      if (utils.isLikeId(dataTypeName)) {
        return utils.getId();
      }
      // 疑是 xxx time/date 字段, 返回当前时间之前一个月内的随机时间
      if (utils.isLikeTime(dataTypeName) || utils.isLikeDate(dataTypeName)) {
        return Date.now() - this._getNum(2592000);
      }
      // range 为 undefined 或者 null
      range = range == undefined ? 100000 : range;
      min = min == undefined ? 0 : min;
      return Math.floor(Math.random() * (range - min + 1) + min);
    }
849033
private static String matchDoneBigDecimal(String bigDecimal) {
        // 对科学计数法进行处理
        boolean flg = Pattern.matches("^-?\\d+(\\.\\d+)?(E-?\\d+)?$", bigDecimal);
        if (flg) {
            BigDecimal bd = new BigDecimal(bigDecimal);
            bigDecimal = bd.toPlainString();
        }
        return bigDecimal;
    }