1.1 + 0.1 == 1.2
< false
1.1 + 0.1 > 1.2
< true
์ซ์ 5์ธ ๊ฒฝ์ฐ
์ซ์ 8์ธ ๊ฒฝ์ฐ
์ซ์ 10์ธ ๊ฒฝ์ฐ
๋ ํฐ ์ซ์๋ฅผ ์ ์ฅํ๊ณ ์ถ์ ๊ฒฝ์ฐ
16์นธ์ผ๋ก ๋๋ ค์ ์ ์ฅํ ์ ์๋ค.
5.125๊ฐ์ ์์ ์ ์ฅ์?
5.125 => 101.001(2์ง์)
(์ด๊ฑฐ๋ง๊ณ IEEE๋ผ๋ ๊ณณ์์ ๊ถ์ฅํ๋ ๋ฐฉ๋ฒ์ด ์๋ค)
5.125 ์ ์ฅํ๋ ค๋ฉด 32์นธ ์ ๋์ ์ฌ์ ์๋ ์นธ์ ๋ง๋ค์ด๋๊ณ
์์์ธ์ง ์์์ธ์ง ์ฌ๋ถ ํ์ธ
์์๋ผ๋ฉด 0, ์์๋ผ๋ฉด 1์ ๊ธฐ์ ํด์ค๋ค.
์ ์ฅํ ์ซ์๋ฅผ 2์ง๋ฒ์ผ๋ก ๋ณํ์ ํ ๋ค์์ . ์ฐ์ ๋ถ๋ถ์ ์ผ์ชฝ์ผ๋ก ๋๊น์ง ์ด๋์ ํด์ค๋ค.
- 5.125 => 101.001 => 1.01001 x 22
- 1.011001 x 22 (5.125 2์ง์ ๋ฒ์ )
1.01001 ์ฌ๊ธฐ์์ . ๋ค์ ํด๋นํ๋ ๋ถ๋ถ 01001์ mantissa๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ถ๋์์์ ๋ฐฉ์์์ ๊ฐ์๋ถ๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, 23๋นํธ, ๊ฐ์ ๋๋ ์ ํจ์ซ์๋ฅผ ๋ํ๋ธ๋ค.
๋งจ๋ค์ 23์นธ์ ๋ฐ์ด๋ฃ๋๋ค.
์ง์ ๋ถ๊ทผ์ 2 + 127 => 10000001 (2์ง๋ฒ์ผ๋ก ๋ณํํด์ ์์ 8์นธ์ ๋ฃ์ด์ค๋ค)
10์ง์ 0.125 ์ซ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ 2์ง์๋ก ๋ณํํ ์ 0.001 ์ด๋ผ๋ ์ซ์๋ก ๊น๋ํ๊ฒ ๋ณํ์ด ๋๋ค.
ํ์ง๋ง, 0.1 ๊ฐ์ ์ ๋งคํ ์ซ์๋ 2์ง์๋ก ๋ณํํ ๊ฒฝ์ฐ ๋ฌดํ 1100 ํจํด์ด ๋ฐ๋ณต๋๋ค.
32์นธ์ ๋ฃ์ ์ซ์์ธ์ ํ์ํด์ฃผ์ง ์์ ์ซ์์ ๋ํด ์ค์ฐจ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ 0.1 ๊ฐ์ ์ซ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค๊ณ ํด๋ ์ ํํ ์ซ์ 0.1๋ฅผ ์ ์ฅํ๊ฒ ์๋๋ค. 0.1๊ณผ ๋น์ทํ ์ซ์๋ฅผ ์ ์ฅํ์ ๋ฟ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ 0.1๊ณผ 1.1 ์ ๋ํ์ ๋ ๋์ค๋ ์ซ์๊ฐ 1.2๊ฐ ์๋๋ค.
์ ํํ ๊ณ์ฐํ๋ ค๋ฉด ์ซ์๋ ์ ์๋ก ๋ณด๊ดํด์ผํ๋ค.
์๋ฅผ ๋ค๋ฉด, 5.1 ๋ฌ๋ฌ์ธ ๊ฒฝ์ฐ๋ 5100์ผํธ๋ก x100์ ๊ณฑํด์ ์ ์ฅํ๋๊ฒ ์ข๋ค.
float๋ฅผ ๊ตณ์ด ์จ์ผํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ฌ๋ฆผ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํด๊ฒฐ๋ฒ์ด ๋ ์ ์๋ค.
์๋๋ฉด double ์๋ฃํ์ผ๋ก => ์ซ์ 1๊ฐ๋น 64์นธ ์ฌ์ฉ
์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
Reference