10์ดย 1์ด ๋์์ผํ๋๋ฐ ์ ๋ฐ๊ตฌ๋ก๋์ด
๊ตณ์ด ๋ฐ์ฌ๋ฆผ ํด์ค์ผํ๋?
double float ์ฐ๋ฉด ์ ๋ฐ๊ฒ ใ ๊ฐ์ด ์ซ์ด์ ๊ฑ decimalํ ์ c++์ด๋ฉด ๋ถ๋์์์ ์ฐ์ฐ ํ๋ฒ ํ ๋๋ง๋ค ์ขใ ใน ๋จ๋ฉด์ ํ์๋๋ฐ ์น๋จ๋ฆผ ใ ใ
ในใ ใ ใ 1 ๋์์ผ๋๋๋ฐ 1.000001 ๋ ์ ์ค๋ฅ๋์ ์์
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๋์ ์ ์ ๋ฐ๊ฑด๋ฐ? ๊ทธ๋ฆฌ๊ณ ํด๊ฒฐ๋ฐฉ๋ฒ์? ๋ณ์
๊ณ ์ ๋จ์ด์ฐ๋์ ๋ค ๋ณด๋ฉด ๋ณธ์ธ์ด ๊ทธ๋ฐ๊ฒฝ์ฐ ๋ง๋๋ผ ์ฐ์๋ ์ ใ ใ
๋๋ง์ด ํ๋ฆฌ์ง ์์๋๋ฐ ๋ง ๋๋ฌด ๋ ๊บผ์์ ๊ทธ๋ฐ๋ฏ
๋๋ฌด ๋ฒ๊ฑฐ๋ฝ๊ณ ํฐ๊ฑฐ์์์
๋ถ๋์์ซ์ ์์ ์ ํํ ๋น๊ต๊ฐ ๋ฐ๋์ ํ์ํ๋ฉด ๋ฌด์์ == ์ฐ๊ธฐ๋ณด๋จ ๋ ๊ฐ์ ์ฐจ์ด๊ฐ epsilon๋ณด๋ค ์์์ง๋ฅผ ๊ฒ์ฌํด์ผํจ
๋ถ๋์์์ ํน์ฑ์ ํ๊ณ๊ฐ... ํฌ๊ฒ ์๊ด์์ผ๋ฉด ๊ทธ๋ฅ ํ๊ธฐ๋ง ๋ค๋ฅด๊ฒ ํด์ค
์๊ทธ๋ฌ๋๋ฉด ์ปดํจํฐ ๊ธฐ๋ณธ๋จ์๋ ๋นํธ๊ณ ๋นํธ๋ 0๊ณผ 1๋ง ์๊ธฐ๋๋ฌธ์ ๋ชจ๋ ์ซ์๊ฐ 2์ง๋ฒ์ผ๋ก ์ ์ฅ๋๋๋ฐ ์์๋ ๋นํธ๋ก ์ ํํ๊ฒ ํํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ค์ด ์์. ์๋ฅผ๋ค์ด 0.9๋ฅผ 2์ง์๋ก ํํํ๋ ค๋ฉด 0.1110~~~์ด๋ฐ์์ผ๋ก ๊ณ์ ๋ด๋ ค๊ฐ๋๋ฐ ๋ค ํํ ๋ชปํจ ์ค์ ๋ก ๋ถ๋์์์ ์ ์ฌ์ฉํด์ ์์๋์ ์ข ๋ค๋ฅด๊ธดํ์ง๋ง ์๋ฌดํผ ์ค์๋ ์ค์ฐจ๊ฐ ์๊ธธ ์๋ฐ์ ์๊ณ ํด๊ฒฐ๋ฒ์ ์๋ค
์ ์ด๋ ดํ์ด ๊ธฐ์ต๋ฌ์ ๊ทผ๋ฐ floatํ ์ฐ๋ฉด์ ์ ๋ฐ์์ผ๋ก ์ค๋ฅ ๋๋๊ฑฐ ๋ณธ๊ฒ ์ฒ์์ด๋ผ ๋๋ง์ด๋ฐ๊ฐ~ ํ์ ใณ
decimal๋ก ํ๋ณํํ๊ณ ๋ค์ float์ด๋ double์ ๋ฃ์ด๋๋ฉด ๋์ง. 1์ด์ ๋ช๋ฐฑ๋ฒ ์คํํ ๊ฑฐ ์๋๋ฉด ๋ฌธ์ ์์ ๋ฏ ํ๋ฐ
Mathf.Approximately
double float ์ฐ๋ฉด ์ ๋ฐ๊ฒ ใ ๊ฐ์ด ์ซ์ด์ ๊ฑ decimalํ ์ c++์ด๋ฉด ๋ถ๋์์์ ์ฐ์ฐ ํ๋ฒ ํ ๋๋ง๋ค ์ขใ ใน ๋จ๋ฉด์ ํ์๋๋ฐ ์น๋จ๋ฆผ ใ ใ
ในใ ใ ใ 1 ๋์์ผ๋๋๋ฐ 1.000001 ๋ ์ ์ค๋ฅ๋์ ์์
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๋์ ์ ์ ๋ฐ๊ฑด๋ฐ? ๊ทธ๋ฆฌ๊ณ ํด๊ฒฐ๋ฐฉ๋ฒ์? ๋ณ์
๊ณ ์ ๋จ์ด์ฐ๋์ ๋ค ๋ณด๋ฉด ๋ณธ์ธ์ด ๊ทธ๋ฐ๊ฒฝ์ฐ ๋ง๋๋ผ ์ฐ์๋ ์ ใ ใ
๋๋ง์ด ํ๋ฆฌ์ง ์์๋๋ฐ ๋ง ๋๋ฌด ๋ ๊บผ์์ ๊ทธ๋ฐ๋ฏ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋๋ฌด ๋ฒ๊ฑฐ๋ฝ๊ณ ํฐ๊ฑฐ์์์
๋ถ๋์์ซ์ ์์ ์ ํํ ๋น๊ต๊ฐ ๋ฐ๋์ ํ์ํ๋ฉด ๋ฌด์์ == ์ฐ๊ธฐ๋ณด๋จ ๋ ๊ฐ์ ์ฐจ์ด๊ฐ epsilon๋ณด๋ค ์์์ง๋ฅผ ๊ฒ์ฌํด์ผํจ
๋ถ๋์์์ ํน์ฑ์ ํ๊ณ๊ฐ... ํฌ๊ฒ ์๊ด์์ผ๋ฉด ๊ทธ๋ฅ ํ๊ธฐ๋ง ๋ค๋ฅด๊ฒ ํด์ค
์๊ทธ๋ฌ๋๋ฉด ์ปดํจํฐ ๊ธฐ๋ณธ๋จ์๋ ๋นํธ๊ณ ๋นํธ๋ 0๊ณผ 1๋ง ์๊ธฐ๋๋ฌธ์ ๋ชจ๋ ์ซ์๊ฐ 2์ง๋ฒ์ผ๋ก ์ ์ฅ๋๋๋ฐ ์์๋ ๋นํธ๋ก ์ ํํ๊ฒ ํํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ค์ด ์์. ์๋ฅผ๋ค์ด 0.9๋ฅผ 2์ง์๋ก ํํํ๋ ค๋ฉด 0.1110~~~์ด๋ฐ์์ผ๋ก ๊ณ์ ๋ด๋ ค๊ฐ๋๋ฐ ๋ค ํํ ๋ชปํจ ์ค์ ๋ก ๋ถ๋์์์ ์ ์ฌ์ฉํด์ ์์๋์ ์ข ๋ค๋ฅด๊ธดํ์ง๋ง ์๋ฌดํผ ์ค์๋ ์ค์ฐจ๊ฐ ์๊ธธ ์๋ฐ์ ์๊ณ ํด๊ฒฐ๋ฒ์ ์๋ค
์ ์ด๋ ดํ์ด ๊ธฐ์ต๋ฌ์ ๊ทผ๋ฐ floatํ ์ฐ๋ฉด์ ์ ๋ฐ์์ผ๋ก ์ค๋ฅ ๋๋๊ฑฐ ๋ณธ๊ฒ ์ฒ์์ด๋ผ ๋๋ง์ด๋ฐ๊ฐ~ ํ์ ใณ
decimal๋ก ํ๋ณํํ๊ณ ๋ค์ float์ด๋ double์ ๋ฃ์ด๋๋ฉด ๋์ง. 1์ด์ ๋ช๋ฐฑ๋ฒ ์คํํ ๊ฑฐ ์๋๋ฉด ๋ฌธ์ ์์ ๋ฏ ํ๋ฐ
Mathf.Approximately