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 |