1. 程式人生 > >隨機數、數值轉換、數值擷取

隨機數、數值轉換、數值擷取

1、生成固定範圍內的隨機數

/**
 * 生成從min到max的隨機數
 * @param min
 * @param max
 * @returns
 */
function randomByTo(min,max){
//	arguments.length表示的是實際上向函式傳入了多少個引數,這個數字可以比形引數量大,也可以比形引數量小(形引數量的值可以通過Function.length獲取到).
	switch(arguments.length){
		case 1:
			return parseInt(Math.random()*min+1,10); 
			break;
		case 2:
			return parseInt(Math.random()*(max-min+1)+min,10); 
			break;
		default: 
			return 0;
			break;
	}
}

2、將數值換成 0.00 的格式

/**
 * 將傳入的數字轉換成 0.00 的格式
 * @param num
 * @returns {String}
 */
function valToFloat2(num){
	num = num.toString();
	if(num.indexOf(".")< 0){
		num = num +'.00';
	}else{
		if(num.split('.')[1].length==0){
			num = num + '00';
		}else if(num.split('.')[1].length==1){
			num = num + '0';
		}else{
			num = num.split('.')[0]+'.'+num.split('.')[1].substr(1,2);
		}
	}
//	num = parseFloat(num);
	return num;
}

3、擷取數值小數位

/**
 * 擷取小數
 * @param val 需要擷取的值
 * @param n	需要擷取小數的位數
 * @returns {String}
 */
function cutDecimal(val,n){	
	var num = val.toString();	
	if(num.indexOf(".") < 0){
		num = num+'.';
		for(var i=0; i<n; i++){
			num += '0';
		}
	}else{
		var len = num.split('.')[1].length;
		if(len<n){
			num = num;
			for(var i=0; i<(n-len); i++){
				num += '0';
			}			
		}else{
			num = num.split('.')[0]+'.'+num.split('.')[1].substr(0,n);
		}
	}
//	num = parseFloat(num);
	return num;	
}

4、將科學計數法轉換成正常數值顯示

/**
 * 將科學計數法轉換成正常數值顯示
 * @param num
 * @returns
 */
function scientificToNum(num){
	let result = String(num);
	if(result.indexOf('-') >= 0){
		result = '0' + String(Number(result) + 1).substr(1);
	}
	return result;
}