function round(number, position){
    if(typeof number !== 'number') return number;
    if(Number.isNaN(number) || !Number.isFinite(number)) return number;
    if(typeof position !== 'number') return number;
    if(Number.isNaN(position) || !Number.isFinite(position)) return number;
    if(Math.abs(position)>15) return number;
	// 능력것 유효성 추가...
    
    var dp = 1;

    if(position == 0) return Math.round(number);
    
    for (let i = 0; i < Math.abs(position); i++)  dp *=10;

    if(position<0) return Math.round(number/dp)*dp; 
    else return Math.round(number*dp)/dp; 
}

 

<!DOCTYPE html>
<html lang="en">
<script src="round.js" ></script>

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>function test</title>
</head>
<body>
    
</body>
<script>
    const number = 123456789.123456789;
    console.log(number);
    console.log('round(number)', round(number));
    console.log('round(number)', round(number,0));
    console.log('round(number,-1)', round(number,-1));
    console.log('round(number,-5)', round(number,-5));
    console.log('round(number, 1)', round(number,1));
    console.log('round(number, 5)', round(number,5));
    console.log(round('string'));
    console.log(round(number , 'string'));
    console.log(round(null),round(Infinity),round(NaN));

</script>

</html>

테스트

 

 

 

 

 

 

'개발 > 자바스크립트' 카테고리의 다른 글

구조 분해 할당  (0) 2023.08.21
배열은 객체?  (0) 2023.08.18
평균 구하기 주의점  (0) 2023.01.21
자바스크립트 중복제거 - 2  (0) 2022.12.15
자바스크립트 중복 제거  (0) 2022.12.12

+ Recent posts