๐ ๋ฌธ์
์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ๊ณฑ๊ทผ ๊ฐ์ ์์์ ๋ ์๋ฆฌ๊น์ง ๋ฆฌํดํด์ผ ํฉ๋๋ค.
โ ๏ธ ์ฃผ์์ฌํญ
Math.sqrt ์ฌ์ฉ์ ๊ธ์ง๋ฉ๋๋ค.
โ๐ป ๋ด ํ์ด
function computeSquareRoot(num) {
// pseudo code
// let originNum = 9;
// let approxNum = originNum / 2;
// while((approxNum * 2) !== originNum){
// approxNum = (approxNum + (originNum / approxNum) / 2)
// }
let approxNum = num / 2;
while((approxNum ** 2) !== num){
if(Number((approxNum ** 2).toFixed(2)) === num) {
break;
}
approxNum = (approxNum + (num / approxNum)) / 2;
}
return Number(approxNum.toFixed(2));
}
โ๐ป ๋ ๋ค๋ฅธ ํ์ด
function computeSquareRoot(num) {
const diffs = [1, 0.1, 0.01, 0.001];
let base = 1;
for (let i = 0; i < diffs.length; i++) {
while (base * base < num) {
base = base + diffs[i];
}
if (base * base === num) {
return base;
} else {
base = base - diffs[i];
}
}
return Number(base.toFixed(2));
}
๐ก ์์๋๋ฉด ์ข์ ๊ฐ๋
๋ฐ๋น๋ก๋์ ๋ฒ์ ์ ํ์
Xn์ ๋ง๊ทธ๋๋ก ๊ทผ์ฌ๊ฐ์ด๊ธฐ ๋๋ฌธ์, S์ ๋ฃจํธ๋ฅผ ์์ด ๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ธ ๊ฒ์ด๋ผ ์๊ฐํ๋ ๊ทผ์ฌ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ์ด๋ค ๊ฐ์ ๋ฃ๋ ์ง ์ ํ์์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ๊ฒฐ๊ตญ Xn+1์ด S์ ์ ๊ณฑ๊ทผ์ ๊ทผ์ ํ๋ ์๊ฐ์ด ์จ๋ค.
// psuedo code
let ๊ทผ์ฌ๊ฐ = ์๋ ์ซ์ / 2;
while((๊ทผ์ฌ๊ฐ**2) !== ์๋์ซ์) {
๊ทผ์ฌ๊ฐ = (๊ทผ์ฌ๊ฐ + (์๋์ซ์ / ๊ทผ์ฌ๊ฐ) / 2
}
*์ **์ ์ฐจ์ด์
2*3 = 6 // 2 ๊ณฑํ๊ธฐ 3
2**3 = 8 // 2์ 3์น
์์์ ์๋ฆฌ์
toFixed( ) ๋ฉ์๋๋ ์์์ n์๋ฆฌ ์๊น์ง ๋ํ๋๋ค.
var numObj = 12345.6789;
numObj.toFixed(); // '12346': ๋ฐ์ฌ๋ฆผํ๋ฉฐ, ์์ ๋ถ๋ถ์ ๋จ๊ธฐ์ง ์์
numObj.toFixed(1); // '12345.7': ์์์ 1์๋ฆฌ๊น์ง ๋จ๊ธฐ๊ณ ๋ฐ์ฌ๋ฆผ
numObj.toFixed(6); // '12345.678900': ๋น ๊ณต๊ฐ์ 0์ผ๋ก ์ฑ์
Number ( )
Number( ) ๋ JavaScript ํ์ค ๋ด์ฅ ๊ฐ์ฒด๋ก์, ํจ์๋ก ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์ด๋ ๋ค๋ฅธ ๊ฐ์ Numberํ์ ์ผ๋ก ๋ณํํ๋ค. ๋ง์ฝ ์ซ์๋ก ๋ณํํ ์ ์์ผ๋ฉด NaN์ ๋ฆฌํดํ๋ค.
Number('123'); // ์ซ์ 123์ ๋ฐํ
Number('123'); === 123; // true
Number('ella'); // NaN
Number(undefined); // NaN
// ์ถ๊ฐ: parseInt()์์ ์ฐจ์ด๋?
// parseInt(): ๋ฌธ์์ด์์ ์ ์๋ง ๋ฝ์์ ๋ณํ
// Number(): ๋ฌธ์์ด ์ ์ฒด๊ฐ ์ซ์์ผ ๋ ์์์ ๊น์ง ์ซ์ ํ์
์ผ๋ก ๋ฐํ
let year = '2023๋
๋'
parseInt(year); // 2023
Number(year); // NaN
let year = '์ด์ 2023๋
๋'
parseInt(year); // NaN
Number(year); // NaN
let year = '2023.123';
parseInt(year); // 2023
Number(year); // 2023.123
๐ฉ๐ป๐ป ๋ฐฐ์ด ์
์ด๋ฒ ํ ๋ฌธ์ ์์ ๋ฐฐ์ด ๊ฐ๋ , ๋ค์ ํ๋ฒ ์ตํ ๊ฐ๋ ์ด ์ ๋ง ๋ง๋ค. ๋น์ทํด ๋ณด์ด๋ ๋ฉ์๋๋ผ๋ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฌ์ฉ๋ ์ ์๊ธฐ์ ์ฌ์ํ ์ฐจ์ด๋ผ๋ ์ ์์๋์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
- Blog: parseInt()์ Number()์ ์ฐจ์ด
- Blog: ์๋ฐ์คํฌ๋ฆฝํธ Math.sqrt( ) ์ฌ์ฉํ์ง ์๊ณ ์ ๊ณฑ๊ทผ ๊ตฌํ๊ธฐ
๋๊ธ