ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ Number๋Š” ์›์‹œ ํƒ€์ž…์ธ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ Number ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ Number ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

// 1. ์ธ์ˆ˜ X
const numObj = new Number();
console.log(numObj); // Number {[[PrimitiveValue]]: 0}

// 2. ์ธ์ˆ˜ O
let numObj = new Number(10);
console.log(numObj); // Number {[[PrimitiveValue]]: 10}

numObj = new Number('10');
console.log(numObj); // Number {[[PrimitiveValue]]: 10}

numObj = new Number('Hello');
console.log(numObj); // Number {[[PrimitiveValue]]: NaN}

// ๋ฌธ์ž์—ด ํƒ€์ž… => ์ˆซ์ž ํƒ€์ž…
Number('0');     // -> 0
Number('-1');    // -> -1
Number('10.53'); // -> 10.53

// ๋ถˆ๋ฆฌ์–ธ ํƒ€์ž… => ์ˆซ์ž ํƒ€์ž…
Number(true);  // -> 1
Number(false); // -> 0
  • Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[NumberData]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— 0์„ ํ• ๋‹นํ•œ Number ๋ž˜ํผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
  • Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ˆซ์ž ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋ฉด์„œ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด [[NumberData]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•œ Number ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
  • Number ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ๊ฐ•์ œ ๋ณ€ํ™˜ํ•œ ํ›„, [[NumberData]] ๋‚ด๋ถ€ ์Šฌ๋กฏ์— ๋ณ€ํ™˜๋œ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•œ Number ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

Number ํ”„๋กœํผํ‹ฐ

Number.EPSILON

ES6์—์„œ ๋„์ž…๋œ Number.EPSILON์€ 1๊ณผ 1๋ณด๋‹ค ํฐ ์ˆซ์ž ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆซ์ž์™€์˜ ์ฐจ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. Number.ESPILON์€ ์•ฝ 2.220446049... x 10^-16์œผ๋กœ, ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค์ฐจ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

// ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค์ฐจ
0.1 + 0.2;         // -> 0.30000000000000004
0.1 + 0.2 === 0.3; // -> false

// Number.EPSILON ํ™œ์šฉํ•ด ๋ถ€๋™์†Œ์ˆ˜์ ์„ ๋น„๊ต
function isEqual(a, b){
  // a์™€ b๋ฅผ ๋บ€ ๊ฐ’์˜ ์ ˆ๋Œ€๊ฐ’์ด Number.EPSILON๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฐ™์€ ์ˆ˜๋กœ ์ธ์ •ํ•œ๋‹ค.
  return Math.abs(a - b) < Number.EPSILON;
}

isEqual(0.1 + 0.2, 0.3); // -> true

 

Number.MAX_VALUE

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์–‘์ˆ˜ ๊ฐ’์œผ๋กœ, Number.MAX_VALUE๋ณด๋‹ค ํฐ ์ˆซ์ž๋Š” Infinity์ž…๋‹ˆ๋‹ค.

 

Number.MAX_VALUE; // -> 1.7976931348623157e+308
Infinity > Number.MAX_VALUE; // -> true

 

Number.MIN_VALUE

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์–‘์ˆ˜ ๊ฐ’์œผ๋กœ, Number.MIN_VALUE๋ณด๋‹ค ์ž‘์€ ์ˆซ์ž๋Š” 0์ž…๋‹ˆ๋‹ค.

 

Number.MIN_VALUE; // -> 5e-324
Number.MIN_VALUE > 0; // -> true

 

Number.MAX_SAFE_INTEGER

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ •์ˆ˜๊ฐ’์ž…๋‹ˆ๋‹ค.

 

Number.MAX_SAFE_INTEGER; // -> 9007199254740991

 

Number.MIN_SAFE_INTEGER

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜๊ฐ’์ž…๋‹ˆ๋‹ค.

 

Number.MIN_SAFE_INTEGER; // -> -9007199254740991

 

Number.POSITIVE_INFINITY

์–‘์˜ ๋ฌดํ•œ๋Œ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž๊ฐ’ Infinity์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

Number.POSITIVE_INFINITY; // -> Infinity

 

Number.NEGATIVE_INFINITY

์Œ์˜ ๋ฌดํ•œ๋Œ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž๊ฐ’ -Infinity์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

Number.NEGATIVE_INFINITY; // -> -Infinity

 

Number.NaN

์ˆซ์ž๊ฐ€ ์•„๋‹˜(Not-a-Number)์„ ํƒ€๋‚˜๋‚ด๋Š” ์ˆซ์ž๊ฐ’์œผ๋กœ Number.NaN์€ window.NaN๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

Number.NaN; // -> NaN

Number ๋ฉ”์„œ๋“œ

Number.isFinite

ES6์—์„œ ๋„์ž…๋œ Number.isFinite ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์ˆซ์ž๊ฐ’์ด ์ •์ƒ์ ์ธ ์œ ํ•œ์ˆ˜, ์ฆ‰ Infinity ๋˜๋Š” -Infinity๊ฐ€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

// 1. ์œ ํ•œ์ˆ˜์ธ์ง€ ๊ฒ€์‚ฌ
// ์ธ์ˆ˜๊ฐ€ ์ •์ƒ์ ์ธ ์œ ํ•œ์ˆ˜์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Number.isFinite(0);                // -> true
Number.isFinite(Number.MAX_VALUE); // -> true
Number.isFinite(Number.MIN_VALUE); // -> true

// ์ธ์ˆ˜๊ฐ€ ๋ฌดํ•œ์ˆ˜์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Number.isFinite(Infinity);  // -> false
Number.isFinite(-Infinity); // -> false


// 2. NaN์€ ์–ธ์ œ๋‚˜ false
Number.isFinite(NaN); // -> false


// 3. Number.isFinite๋Š” ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isFinite(null); // -> false

// isFinite๋Š” ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•œ๋‹ค. null์€ 0์œผ๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๋œ๋‹ค.
isFinite(null); // -> true
  • ๋งŒ์•ฝ ์ธ์ˆ˜๊ฐ€ NaN์ด๋ฉด ์–ธ์ œ๋‚˜ false๋ฅผ ๋ฐ˜ํ™˜
  • ์ „๋‹ฌ๋ฐ›์€ ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์•„์„œ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ์ธ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์–ธ์ œ๋‚˜ false๋ฅผ ๋ฐ˜ํ™˜

 

Number.isInteger

ES6์—์„œ ๋„์ž…๋œ Number.isInteger ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์ˆซ์ž๊ฐ’์ด ์ •์ˆ˜์ธ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์‚ฌํ•˜๊ธฐ ์ „์— ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

// ์ธ์ˆ˜๊ฐ€ ์ •์ˆ˜์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Number.isInteger(0)     // -> true
Number.isInteger(123)   // -> true
Number.isInteger(-123)  // -> true

// 0.5๋Š” ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
Number.isInteger(0.5)   // -> false
// '123'์„ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isInteger('123') // -> false
// false๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isInteger(false) // -> false
// Infinity/-Infinity๋Š” ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
Number.isInteger(Infinity)  // -> false
Number.isInteger(-Infinity) // -> false

 

Number.isNaN

ES6์—์„œ ๋„์ž…๋œ Number.isNaN ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์ˆซ์ž๊ฐ’์ด NaN์ธ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Number.isNaN ๋ฉ”์„œ๋“œ๋Š” ์ „๋‹ฌ๋ฐ›์€ ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

// ์ธ์ˆ˜๊ฐ€ NaN์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
Number.isNaN(NaN); // -> true

// Number.isNaN์€ ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isNaN(undefined); // -> false

// isFinite๋Š” ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•œ๋‹ค. undefined๋Š” NaN์œผ๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜๋œ๋‹ค.
isNaN(undefined); // -> true

 

Number.isSafeInteger

ES6์—์„œ ๋„์ž…๋œ Number.isSafeInteger ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์ˆซ์ž๊ฐ’์ด ์•ˆ์ „ํ•œ ์ •์ˆ˜(-(2^53-1) ~ 2^53-1)์ธ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Number.isSafeInteger ๋ฉ”์„œ๋“œ๋Š” ์ „๋‹ฌ๋ฐ›์€ ์ธ์ˆ˜๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

// 0์€ ์•ˆ์ „ํ•œ ์ •์ˆ˜์ด๋‹ค.
Number.isSafeInteger(0); // -> true
// 1000000000000000์€ ์•ˆ์ „ํ•œ ์ •์ˆ˜์ด๋‹ค.
Number.isSafeInteger(1000000000000000); // -> true

// 10000000000000001์€ ์•ˆ์ „ํ•˜์ง€ ์•Š๋‹ค.
Number.isSafeInteger(10000000000000001); // -> false
// 0.5์€ ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
Number.isSafeInteger(0.5); // -> false
// '123'์„ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isSafeInteger('123'); // -> false
// false๋ฅผ ์ˆซ์ž๋กœ ์•”๋ฌต์  ํƒ€์ž… ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Number.isSafeInteger(false); // -> false
// Infinity/-Infinity๋Š” ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
Number.isSafeInteger(Infinity); // -> false

 

Number.prototype.toExponential

toExponential ๋ฉ”์„œ๋“œ๋Š” ์ˆซ์ž๋ฅผ ์ง€์ˆ˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€์ˆ˜ ํ‘œ๊ธฐ๋ฒ•์ด๋ž€ ๋งค์šฐ ํฌ๊ฑฐ๋‚˜ ์ž‘์€ ์ˆซ์ž๋ฅผ ํ‘œ๊ธฐํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ e(Exponent) ์•ž์— ์žˆ๋Š” ์ˆซ์ž์— 10์˜ n์Šน์„ ๊ณฑํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

// 1. ์ธ์ˆ˜๋กœ ์†Œ์ˆ˜์  ์ดํ•˜๋กœ ํ‘œํ˜„ํ•  ์ž๋ฆฟ์ˆ˜๋ฅผ ์ „๋‹ฌ ๊ฐ€๋Šฅ
(77.1234).toExponential();  // -> "7.71234e+1"
(77.1234).toExponential(4); // -> "7.7123e+1"
(77.1234).toExponential(2); // -> "7.71e+1"


// 2. ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ํ•จ๊ป˜ Number ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ
77.toExponential(); // -> SyntaxError: Invalid or unexpected token

// ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ํ•จ๊ป˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ทธ๋ฃน ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ
77.1234.toExponential(); // -> "7.71234e+1"
(77).toExponential(); // -> "7.7e+1"

// 3. ์ˆซ์ž ๋’ค์˜ .๋’ค์— ๊ณต๋ฐฑ์ด ์˜ค๋ฉด .์„ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ์—ฐ์‚ฐ์ž๋กœ ํ•ด์„ํ•จ
77 .toExponential(); // -> "7.7e+1"
  • ์ธ์ˆ˜๋กœ ์†Œ์ˆ˜์  ์ดํ•˜๋กœ ํ‘œํ˜„ํ•  ์ž๋ฆฟ์ˆ˜๋ฅผ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ํ•จ๊ป˜ Number ํ”„๋กœํ† ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ
  • ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ํ•จ๊ป˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ˜ผ๋ž€ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๊ทธ๋ฃน ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•จ
  • ์ˆซ์ž ๋’ค์˜ . ๋’ค์— ๊ณต๋ฐฑ์ด ์˜ค๋ฉด . ์„ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ์—ฐ์‚ฐ์ž๋กœ ํ•ด์„ํ•จ

 

Number.prototype.toFixed

toFixed ๋ฉ”์„œ๋“œ๋Š” ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 0~20 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ’์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ณ  ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•œ๋‹ค๋ฉด ๊ธฐ๋ณธ๊ฐ’ 0์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

 

// ์†Œ์ˆ˜์  ์ดํ•˜ ๋ฐ˜์˜ฌ๋ฆผ. ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ 0์ด ์ง€์ •๋œ๋‹ค.
(12345.6789).toFixed(); // -> "12346"
// ์†Œ์ˆ˜์  ์ดํ•˜ 1์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toFixed(1); // -> "12345.7"
// ์†Œ์ˆ˜์  ์ดํ•˜ 2์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toFixed(2); // -> "12345.68"
// ์†Œ์ˆ˜์  ์ดํ•˜ 3์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toFixed(3); // -> "12345.679"

 

Number.prototype.toPrecision

 toPrecision ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ „์ฒด ์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์œ ํšจํ•˜๋„๋ก ๋‚˜๋จธ์ง€ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ „์ฒด ์ž๋ฆฟ์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ง€์ˆ˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

์ „์ฒด ์ž์ง“์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 0~21 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ’์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ 0์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

 

// ์ „์ฒด ์ž๋ฆฌ์ˆ˜ ์œ ํšจ. ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ 0์ด ์ „๋‹ฌ๋œ๋‹ค.
(12345.6789).toPrecision(); // -> "12345.6789"
// ์ „์ฒด 1์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toPrecision(1); // -> "1e+4"
// ์ „์ฒด 2์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toPrecision(2); // -> "1.2e+4"
// ์ „์ฒด 6์ž๋ฆฌ์ˆ˜ ์œ ํšจ, ๋‚˜๋จธ์ง€ ๋ฐ˜์˜ฌ๋ฆผ
(12345.6789).toPrecision(6); // -> "12345.7"

 

Number.prototype.toString

toString ๋ฉ”์„œ๋“œ๋Š” ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ง„๋ฒ•์„ ๋‚˜ํƒ€๋‚ด๋Š” 2~36 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ’์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ 10์ง„๋ฒ•์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

 

// ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด 10์ง„์ˆ˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
(10).toString(); // -> "10"
// 2์ง„์ˆ˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
(16).toString(2); // -> "10000"
// 8์ง„์ˆ˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
(16).toString(8); // -> "20"
// 16์ง„์ˆ˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
(16).toString(16); // -> "10"

[์ถœ์ฒ˜] ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive

https://wikibook.co.kr/mjs/

 

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๋™์ž‘ ์›๋ฆฌ

269๊ฐœ์˜ ๊ทธ๋ฆผ๊ณผ ์›๋ฆฌ๋ฅผ ํŒŒํ—ค์น˜๋Š” ์„ค๋ช…์œผ๋กœ ‘์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ๋™์ž‘ ์›๋ฆฌ’๋ฅผ ์ดํ•ดํ•˜์ž! ์›นํŽ˜์ด์ง€์˜ ๋‹จ์ˆœํ•œ ๋ณด์กฐ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ œํ•œ์ ์ธ ์šฉ๋„๋กœ ํƒœ์–ด๋‚œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ณผ๋„

wikibook.co.kr