[JavaScript] Math


1. Math

MathλŠ” μˆ˜ν•™μ μΈ μƒμˆ˜μ™€ ν•¨μˆ˜λ₯Ό μœ„ν•œ 속성과 λ©”μ„œλ“œλ₯Ό 가진 λ‚΄μž₯ 객체

[Math.ceil() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil)
  1. Math.ceil(x)

주어진 μˆ«μžλ³΄λ‹€ ν¬κ±°λ‚˜ 같은 숫자 쀑 κ°€μž₯ μž‘μ€ 숫자λ₯Ό integer둜 λ°˜ν™˜.

  • λ§€κ°œλ³€μˆ˜ : 숫자
  • 올림
  • μ •μˆ˜λ‘œ λ°˜ν™˜
  • μ†Œμˆ˜μ  μžλ¦Ώμˆ˜μ— 상관없이 μ†Œμˆ˜ 자리의 값이 μžˆλ‹€λ©΄ μ˜¬λ¦¬κ±°λ‚˜ λ‚΄λ¦°λ‹€.
let num1 = 5.1;
let num2 = 5.7;

Math.ceil(num1);
console.log(Math.ceil(num1));
Math.ceil(num2);
console.log(Math.ceil(num2));

=> κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
6
6

[Done] exited with code=0 in 0.049 seconds


  1. Math.floor(x)

Math.floor() ν•¨μˆ˜λŠ” Math.floor()ν•¨μˆ˜λŠ” 주어진 μˆ«μžμ™€ κ°™κ±°λ‚˜ μž‘μ€ μ •μˆ˜ μ€‘μ—μ„œ κ°€μž₯ 큰 수λ₯Ό λ°˜ν™˜

[Math.floor() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/floor)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • λ‚΄λ¦Ό
  • μ •μˆ˜λ‘œ λ°˜ν™˜
  • μ†Œμˆ˜μ  μžλ¦Ώμˆ˜μ— 상관없이 μ†Œμˆ˜ 자리의 값이 μžˆλ‹€λ©΄ μ˜¬λ¦¬κ±°λ‚˜ λ‚΄λ¦°λ‹€.
let num1 = 5.1;
let num2 = 5.7;

Math.floor(num1);
console.log(Math.floor(num1));
Math.floor(num2);
console.log(Math.floor(num2));

=>κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
5
5

[Done] exited with code=0 in 1.421 seconds

  1. Math.round(x)

Math.round()Β ν•¨μˆ˜λŠ” μž…λ ₯값을 λ°˜μ˜¬λ¦Όν•œ μˆ˜μ™€ κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜ 값을 λ°˜ν™˜

[Math.round() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/round)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • 반올림
  • μ •μˆ˜λ‘œ λ°˜ν™˜
let num1 = 5.1;
let num2 = 5.7;

console.log(Math.round(num1));
console.log(Math.round(num2));

=> κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
5
6

[Done] exited with code=0 in 0.061 seconds

  1. toFixed()

숫자λ₯Ό κ³ μ • μ†Œμˆ˜μ  ν‘œκΈ°λ²•(fixed-point notation)으둜 ν‘œμ‹œ

[Number.prototype.toFixed() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • μ†Œμˆ˜μ  μ…‹μ§Έ μžλ¦¬μ—μ„œ λ°˜μ˜¬λ¦Όμ„ 원할 경우 toFixed(n)Β λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•¨
let myNumber = 58.112512512421424;

console.log(Number(myNumber.toFixed(2)));

=>κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
58.11

[Done] exited with code=0 in 0.049 seconds

  1. Math.random(x)

Math.random()Β ν•¨μˆ˜λŠ” 0 이상 1 미만의 κ΅¬κ°„μ—μ„œ κ·Όμ‚¬μ μœΌλ‘œ κ· μΌν•œ(approximately uniform) λΆ€λ™μ†Œμˆ«μ  μ˜μ‚¬λ‚œμˆ˜λ₯Ό λ°˜ν™˜ν•˜λ©°, 이 값은 μ‚¬μš©μžκ°€ μ›ν•˜λŠ” λ²”μœ„λ‘œ λ³€ν˜•ν•  수 μžˆλ‹€. λ‚œμˆ˜ 생성 μ•Œκ³ λ¦¬μ¦˜μ— μ‚¬μš©λ˜λŠ” μ΄ˆκΈ°κ°’μ€ κ΅¬ν˜„μ²΄κ°€ μ„ νƒν•˜λ©°, μ‚¬μš©μžκ°€ μ„ νƒν•˜κ±°λ‚˜ μ΄ˆκΈ°ν™”ν•  수 μ—†λ‹€.

*μ°Έκ³ : Β Math.random()은 μ•”ν˜Έν•™μ μœΌλ‘œ μ•ˆμ „ν•œ λ‚œμˆ˜λ₯ΌΒ μ œκ³΅ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ μ–΄λ–€ 것에도 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œλŠ” μ•ˆ λœλ‹€. κ·Έ λŒ€μ‹  Web Crypto API의 window.crypto.getRandomValues()Β λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬μ•Ό ν•œλ‹€.

[Math.random() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/random)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • 0 이상 1 미만의 λΆ€λ™μ†Œμˆ«μ  μ˜μ‚¬ λ‚œμˆ˜.
const num =Math.random()

console.log('0~10 μ‚¬μ΄μ˜ λžœλ€ν•œ 숫자:',num*10)
console.log('0~50 μ‚¬μ΄μ˜ λžœλ€ν•œ 숫자:',num*50)

=>κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
0~10 μ‚¬μ΄μ˜ λžœλ€ν•œ 숫자: 2.2020552161617157
0~50 μ‚¬μ΄μ˜ λžœλ€ν•œ 숫자: 11.010276080808579

[Done] exited with code=0 in 0.048 seconds

  1. Math.max(x)

Math.max()Β ν•¨μˆ˜λŠ” μž…λ ₯κ°’μœΌλ‘œ 받은 0개 μ΄μƒμ˜ 숫자 쀑 κ°€μž₯ 큰 숫자λ₯Ό λ°˜ν™˜

[Math.max() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max)
  • λ§€κ°œλ³€μˆ˜ : κ°’1, κ°’2, …
  • μž…λ ₯된 숫자 쀑 κ°€μž₯ 큰 숫자λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. λ§Œμ•½ 인수 쀑 ν•˜λ‚˜λΌλ„ 숫자둜 λ³€ν™˜ν•˜μ§€ λͺ»ν•œλ‹€λ©΄Β NaN둜 λ°˜ν™˜
console.log(Math.max(1, 4, 10, -1, 2.24))

=>κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
10

[Done] exited with code=0 in 0.05 seconds

  1. Math.min(x)

Math.min()Β ν•¨μˆ˜λŠ” 주어진 μˆ«μžλ“€ 쀑 κ°€μž₯ μž‘μ€ 값을 λ°˜ν™˜

[Math.min() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/min)
  • λ§€κ°œλ³€μˆ˜ : κ°’1, κ°’2, …
  • μž…λ ₯된 숫자 쀑 κ°€μž₯ μž‘μ€ 숫자λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. λ§Œμ•½ 인수 쀑 ν•˜λ‚˜λΌλ„ 숫자둜 λ³€ν™˜ν•˜μ§€ λͺ»ν•œλ‹€λ©΄Β NaN둜 λ°˜ν™˜
console.log(Math.min(1, 4, 10, -1, 2.24))

=>κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
-1

[Done] exited with code=0 in 0.055 seconds

  1. Math.abs(x)

Math.abs()Β ν•¨μˆ˜λŠ” 주어진 숫자의 μ ˆλŒ€κ°’μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.Β xκ°€ μ–‘μˆ˜μ΄κ±°λ‚˜ 0이라면 xλ₯Ό λ¦¬ν„΄ν•˜κ³ ,Β xκ°€ 음수라면 x의 λ°˜λŒ€κ°’, 즉 μ–‘μˆ˜λ₯Ό λ°˜ν™˜

[Math.abs() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/abs)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • 주어진 숫자의 μ ˆλŒ€κ°’.
  • 빈 객체, ν•˜λ‚˜ μ΄μƒμ˜ μš”μ†Œλ₯Ό 가진 λ°°μ—΄, μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžμ—΄,undefinedλ‚˜ 빈 λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μœΌλ©΄ NaN을 λ°˜ν™˜ν•©λ‹ˆλ‹€.null, 빈 λ¬Έμžμ—΄μ΄λ‚˜ 빈 배열을 μ œκ³΅ν•˜λ©΄ 0을 λ°˜ν™˜
function difference(a, b) {
    return Math.abs(a - b);
  }

  console.log(difference(3, 5));

=> κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
2

[Done] exited with code=0 in 0.196 seconds

  1. Math.pow(base,exponent)

Math.pow()ν•¨μˆ˜λŠ”base^exponent처럼 base에 exponentλ₯Ό μ œκ³±ν•œ 값을 λ°˜ν™˜

[Math.pow() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow)
  • λ§€κ°œλ³€μˆ˜ : base(λ°‘ κ°’) , exponent(μ§€μˆ˜)
  • 주어진 λ°‘ 값을 주어진 μ§€μˆ˜ κ°’μœΌλ‘œ κ±°λ“­μ œκ³±ν•œ 숫자 κ°’
console.log(Math.pow(7, 3));

console.log(Math.pow(7, -2));

console.log(Math.pow(-7, 0.5));

=> κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
343
0.020408163265306124
NaN

[Done] exited with code=0 in 0.071 seconds


  1. Math.sqrt(x)

Math.sqrt()ν•¨μˆ˜λŠ” 숫자의 μ œκ³±κ·Όμ„ λ°˜ν™˜

[Math.sqrt() - JavaScriptMDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt)
  • λ§€κ°œλ³€μˆ˜ : 숫자
  • 주어진 μˆ«μžμ— 루트(√ )λ₯Ό μ”Œμ›λ‹ˆλ‹€. λ§Œμ•½ μˆ«μžκ°€ 음수이면 NaNλ₯Ό λ°˜ν™˜
console.log(Math.sqrt(16));

console.log(Math.sqrt(2));

console.log(Math.sqrt(-1));

=> κ²°κ³Όκ°’

[Running] node "/workspaces/codespaces-blank/index.js"
4
1.4142135623730951
NaN

[Done] exited with code=0 in 0.048 seconds