Javascript

[JS] JavaScript์—์„œ 0.1 + 0.2๋Š” 0.3์ผ๊นŒ? (JS๊ฐ€ ์ˆซ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹)

Alexim 2022. 5. 17. 16:58

๐Ÿ“— JavaScript์—์„œ 0.1 + 0.2๋Š” 0.3์ผ๊นŒ?

0.1 + 0.2 === 0.3; // false

typeof(0.1); // 'number'

const a = 0.1;
const b = 0.2;

a + b === 0.3 // false

console.log(a + b); // 0.30000000000000004

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด 0.3์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ปดํ“จํ„ฐ๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด 10์ง„๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ๊ฒƒ์„ ์ž์‹ ์˜ ์–ธ์–ด์ธ 2์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋Š” JavaScript๊ฐ€ ์‹ค์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹ ์„ ์ฑ„ํƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ง‘๊ณ  ๋„˜์–ด๊ฐ€์ž๋ฉด...(๋งค๋ฒˆ ๊นŒ๋จน์œผ๋ฏ€๋กœ..)

  • ์ •์ˆ˜ : 10, 400 ํ˜น์€ -5 ๊ฐ™์€ ๋ชจ๋“  ์ˆซ์ž
  • ์‹ค์ˆ˜ : -1, 0, 1/2, e, π ์ฃผ๋กœ ์‹ค์ง์„  ์œ„์˜ ์  ๋˜๋Š” ์‹ญ์ง„๋ฒ• ์ „๊ฐœ๋กœ ํ‘œํ˜„๋˜๋Š” ์ˆ˜ ์ฒด๊ณ„
  • ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜ (Floating point numbers(floats)) : 12.5, 6.7876 ๊ฐ™์ด ์†Œ์ˆ˜์ ๊ณผ ์†Œ์ˆ˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ
  • ๋ฐฐ์ •๋ฐ€๋„ ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜(Double) : IEEE 754 ํ‘œ์ค€ ๋ถ€๋™์†Œ์ˆ˜์ ๋ณด๋‹ค ๋” ์ •ํ™•ํ•œ ์ •๋ฐ€๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠน๋ณ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…
    (Doubles๋Š” Floats ๋ณด๋‹ค ๋” ๋งŽ์€ ์†Œ์ˆ˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์†Œ์ˆ˜์  ํ‘œํ˜„์—๋Š” Doubles๊ฐ€ ๋” ์ •ํ™•ํ•จ)
  • 2์ง„์ˆ˜ : 10์ง„์ˆ˜๋ฅผ 0๊ณผ 1์„ ์ด์šฉํ•ด ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • 8์ง„์ˆ˜ : 10์ง„์ˆ˜๋ฅผ 0๋ถ€ํ„ฐ 7๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • 16์ง„์ˆ˜ : 10์ง„์ˆ˜๋ฅผ 0๋ถ€ํ„ฐ 15๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… (1
    10, A
    F CSS ์ƒ‰์ƒ ์ง€์ •ํ•  ๋•Œ..)

๊ณ„์† ๋‚˜์˜ค๊ณ  ์žˆ๋Š” ๋ถ€๋™์†Œ์ˆ˜์ ์ด๋ผ๋Š” ๊ฒŒ ๋Œ€์ฒด ๋ฌด์—‡์ธ์ง€๋Š” ๋ฐ‘์—์„œ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ปดํ“จํ„ฐ๊ฐ€ ์‹ค์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ•˜๋‚˜๋ผ๊ณ ๋งŒ ์•Œ์•„๋‘๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“— $ 1\over 3$ + $1\over 3$ + $1\over 3$ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

์ผ๋ฐ˜์ ์œผ๋กœ 1์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ฒ ์ง€๋งŒ ์ด์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ๋Š” ๊ทธ๋ ‡์ง€๊ฐ€ ์•Š์Šต๋‹ˆ๋‹ค.

$ 1\over 3$ = 0.3333333333.... ๋ฌดํ•œ๋Œ€๊นŒ์ง€ 0.33333์ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.

0.3์„ 2์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด : 0.010011001100110011001100110011001100110011001100110011...
0.2๋ฅผ 2์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด : 0.001100110011001100110011001100110011001100110011001101...

์ด๋ ‡๋“ฏ์ด 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ์†Œ์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ปดํ“จํ„ฐ์—๋Š” ์ œํ•œ๋œ ์–‘์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ฌดํ•œํ•œ ์–‘์˜ ์ˆซ์ž๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ทผ์‚ฌ์น˜์˜ ๊ฐ’์ด ์ €์žฅ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ์†Œ์ˆ˜์ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค.
๊ทผ์‚ฟ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๊ณ ์ •์†Œ์ˆ˜์  ๋ฐฉ์‹๊ณผ ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“— IEEE-754 : JavaScript๊ฐ€ ์ˆซ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

๋ฒŒ์จ๋ถ€ํ„ฐ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„๊ธฐ ์‹œ์ž‘ํ•˜์ง€๋งŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋จผ์ € ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ˆซ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

JavaScript ์ˆซ์ž๋Š” ํ•ญ์ƒ 64๋น„ํŠธ ๋ถ€๋™ ์†Œ์ˆ˜์ ์ด๋‹ค.

JavaScript๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ์ •์ˆ˜, short, long, ๋ถ€๋™์†Œ์ˆ˜์  ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ˆซ์ž๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
JavaScript์˜ ์ˆซ์ž๋Š” Java, C#์˜ double ํƒ€์ž…์ฒ˜๋Ÿผ IEEE-754 ํ‘œ์ค€์— ๋”ฐ๋ผ ํ•ญ์ƒ international IEEE 754 standard๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.


  • Number๋Š” ์†Œ์ˆ˜์  ์ดํ•˜ 17์ž๋ฆฌ ์ •๋„๋งŒ ์œ ์ง€ํ•˜๋ฉฐ ์‚ฐ์ˆ ์€ ๋ฐ˜์˜ฌ๋ฆผ์˜ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.
  • Number๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์€ 1.8E308 ๊ทธ๋ณด๋‹ค ๋” ํฐ ๊ฐ’์€ ํŠน๋ณ„ํ•œ Number ์ƒ์ˆ˜์ธ Infinity๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹ค์ˆ˜์™€ ์ •์ˆ˜ ๋ชจ๋‘ Number๋ผ๋Š” ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์‹ค์ˆ˜์™€ ์ •์ˆ˜ ๋ชจ๋‘ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป)
0.1 + 0.2 === 0.3; // false

typeof(0.1); // 'number'

const a = 0.1;
const b = 0.2;

a + b === 0.3 // false

console.log(a + b); // 0.30000000000000004

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด์™€์„œ 0.1 + 0.2๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•ด ๋ณด๋ฉด 0.30000000000000004 ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์ € ์œ„์— Number๋Š” ์†Œ์ˆ˜์  ์ดํ•˜ 17์ž๋ฆฌ ์ •๋„๋งŒ ์œ ์ง€ํ•œ๋‹ค๊ณ  ๋˜์–ด์žˆ๋Š”๋ฐ ์ € 30000000000000004์˜ ๊ฐœ์ˆ˜๊ฐ€ 17๊ฐœ์ธ ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๊ฒ ์ฃ . (์„ธ์–ด๋ดค๋Š”๋ฐ 17๊ฐœ๊ฐ€ ๋งž๋„ค์š”๐Ÿ™„)

ํŒŒ์ด์ฌ์„ ์˜ˆ๋กœ ๋“ค๋ฉด ํŒŒ์ด์ฌ์˜ ์ž๋ฃŒํ˜•์—๋Š” ์ •์ˆ˜(int)์™€ ์‹ค์ˆ˜(float)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์˜ ์‹ค์ˆ˜ ํƒ€์ž…์€ float์ž…๋‹ˆ๋‹ค.
์ž๋ฐ”์—์„œ๋„ ์ •์ˆ˜์™€ ์‹ค์ˆ˜๊ฐ€ ์žˆ๊ณ  ์‹ค์ˆ˜ ํƒ€์ž…์—๋Š” float, double๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. float๋Š” 32๋น„ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  double์€ 64๋น„ํŠธ์ž…๋‹ˆ๋‹ค.


ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ˆซ์ž๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฆ‰ JS์—์„œ 37๊ณผ ๊ฐ™์€ ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด์€ ์ •์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์ž…๋‹ˆ๋‹ค. (์ด์ œ๋Š” BigInt ํƒ€์ž…์ด ์žˆ์ง€๋งŒ Number๋ฅผ ๋Œ€์ฒดํ•˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•˜๋„ค์š”.)

https://0.30000000000000004.com/ ์ด๋Ÿฌํ•œ ์‚ฌ์ดํŠธ๋„ ์žˆ๋„ค์šฉ.

์—ฌ๊ธฐ์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ตํ›ˆ์€
์†Œ์ˆ˜์ ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด ์ฐจ์ด๊ฐ€ ๋„ˆ๋ฌด ์ž‘์•„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ˆ˜ ์—ฐ์‚ฐ์ด ๋ฌด์กฐ๊ฑด ์ •ํ™•ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆœ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์—ผ๋‘์— ๋‘์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๊ฒ ์ฃ .
์ •ํ™•ํ•œ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ํ•„์š”ํ•  ๋•Œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๊ฒ ์ฃ . ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ธˆ์šฉ ์ชฝ์˜ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋‚˜๋˜๊ฐ€.... ๊ทธ๋Ÿฐ.. ์ผ์ด ์žˆ๋‹ค๋ฉด.. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€๋Š” ๊ทธ๋•Œ ๊ฐ€์„œ ๋‹ค์‹œ ๊ณต๋ถ€๋ฅผ...

๋ฐ‘์—์„œ๋Š” ์‹ค์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ ๊ณ ์ • ์†Œ์ˆ˜์ , ๋ถ€๋™์†Œ์ˆ˜์ ์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ๋งŒ.. ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“— ๊ณ ์ • ์†Œ์ˆ˜์  fixed point

์†Œ์ˆ˜์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ์ •๋œ ์ž๋ฆฟ์ˆ˜์˜ ์†Œ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ.
์‹ค์ˆ˜๋Š” ๋ณดํ†ต ์ •์ˆ˜๋ถ€์™€ ์†Œ์ˆ˜๋ถ€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์€ ์†Œ์ˆ˜๋ถ€์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•˜์—ฌ, ๊ณ ์ •๋œ ์ž๋ฆฟ์ˆ˜์˜ ์†Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ
์ด ๋ฐฉ์‹์€ ์ •์ˆ˜๋ถ€์™€ ์†Œ์ˆ˜๋ถ€์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ, ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ๋งค์šฐ ์ ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (ํ•œ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹๋ณด๋‹ค ์ข์€ ๋ฒ”์œ„์˜ ์ˆ˜๋งŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๐Ÿ“— ๋ถ€๋™์†Œ์ˆ˜์  floating point ๆตฎๅ‹•ๅฐๆ•ธ้ปž

๋œฐ ๋ถ€
์›€์ง์ผ ๋™

ํ•˜๋‚˜์˜ ์‹ค์ˆ˜๋ฅผ ๊ฐ€์ˆ˜๋ถ€์™€ ์ง€์ˆ˜๋ถ€๋กœ ๋‚˜๋ˆ„์–ด ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹.
์‹ค์ˆ˜๋ฅผ ์ปดํ“จํ„ฐ์ƒ์—์„œ ๊ทผ์‚ฌํ•˜์—ฌ ํ‘œํ˜„ํ•  ๋•Œ ์†Œ์ˆ˜์ ์˜ ์œ„์น˜๋ฅผ ๊ณ ์ •ํ•˜์ง€ ์•Š๊ณ  ๊ทธ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋ฅผ ๋”ฐ๋กœ ์ ๋Š” ๊ฒƒ. (๋– ๋Œ์ด ์†Œ์ˆ˜์  ๋ฐฉ์‹์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.)

IEEE์˜ ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹

IEEE 754๋Š” ์ „๊ธฐ ์ „์ž ๊ธฐ์ˆ ์ž ํ˜‘ํšŒ (IEEE)์—์„œ ๊ฐœ๋ฐœํ•œ ์ปดํ“จํ„ฐ์—์„œ ๋ถ€๋™์†Œ์ˆ˜์ ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ํ‘œ์ค€์ด๋‹ค.
IEEE 754์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ‘œํ˜„์€ ํฌ๊ฒŒ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ์ตœ์ƒ์œ„ ๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ง€์ˆ˜ ๋ถ€๋ถ„(exponent)๊ณผ ๊ฐ€์ˆ˜ ๋ถ€๋ถ„(fraction/mantissa)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

( ๋งจ ์•ž์ž๋ฆฌ๋Š” ๋ถ€ํ˜ธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š”๋ฐ 1์ด๋ฉด ์Œ์ˆ˜ 0์ด๋ฉด ์–‘์ˆ˜์ž…๋‹ˆ๋‹ค.)

  • ์ •ํ™•๋„ ๋ฌธ์ œ
    • ๋ถ€๋™ ์†Œ์ˆ˜์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๊ฐ€ ์‹ค์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ ์—ญ์‹œ ์‹ค์ œ ์ˆณ๊ฐ€์  ์—ฐ์‚ฐ์„ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทœ๊ฒฉ
    • ์‹ค์ œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์€ ๋Œ€๋ถ€๋ถ„ IEEE 754 ํ‘œ์ค€์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๐Ÿ“— ๋ถ€๋™์†Œ์ˆ˜์  ๋ฐฉ์‹์˜ ์˜ค์ฐจ

๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ์‹ค์ˆ˜๋Š” ํ•ญ์ƒ ์˜ค์ฐจ๊ฐ€ ์กด์žฌํ•˜๋Š” ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ์ •ํ™•ํ•œ ํ‘œํ˜„์ด ์•„๋‹Œ ๊ทผ์‚ฌ์น˜๋ฅผ ํ‘œํ˜„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ ๋ฐ ์ถœ์ฒ˜