์๋ค์ ์๋ ?
์ฃผ๋ชจ ํค์ฐ๋ ์์ฌ์ผ.
์ฒ์ ๊ฒ์ ๋ง๋ค๋๋ float๋ก ๊ฐ๋ฐํ๋ค๊ฐ e+38 ๋์ด๊ฐ์ ์๋ฌ๋จ๋๊ฑฐ ๋ณด๊ณ ๊ธฐ๊ฒํด์ double๋ก ๋ฐ๊ฟจ์ด.
float๊ณผ ๋ฌ๋ฆฌ double์ e+308๊น์ง ์ง์ํ๋ ๊ฑธ ๋ณด๊ณ
"์, ์ด ์ ๋๋ฉด ๊ฒ์ ์ ์ ๋๊น์งย ๋์น ์ผ์ ์๊ฒ ๊ตฌ๋"
ํ๊ณ ์์ฌํ์๋๋ฐ...
์ง๊ธ ์ถ์ํ๊ณ ์ ์ ๋ค ํ๋ ์ดํ๋๊ฑฐ๋ณด๋๊น ๋จธ์ง์์ e+308๋ก๋ ๋ถ์กฑํด ์ง ๊ฒ ๊ฐ์ ๋๋์ด ๋๋๊ฑฐ์ผ.
๊ทธ๋์ ์ ์ด๊ฒ ๋ง์ด ๋๋? ์ถ์ด ์ด ์ฅ๋ฅด์ ์ ๊ตฌ์์ธ ํญํ์ดํ์ ๋ดค์ง.
๊ทผ๋ฐ ๊ฑ๋ค๋... ์ด... ์ด๋ฏธ e+308๋ฐ์ ์๋ํ๊ฒ ์ด์ํด ์๋๋ผ๊ตฌ.
(e+308์ด ์ง๊ธ ๋ฌธ์์ด ๋ณํ ๊ธฐ์ค์ผ๋ก 100.00cw์ธ๋ฐ, ํญ ํ์ดํ์ ๋ญ 121awx ์ด๋ฌ๊ณ ์์์๋๋ผ๊ณ ใ ใ ใ )
๊ทธ๋์ ๋ง์ธ๋ฐ, double ์๋ฃํ์ด ๋์ด๊ฐ ๋ ๋ณดํต ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๊ฑฐ์ผ?
ํน์ ์ง์๊ฐ๋ ์น๊ตฌ๋ค์ ๋๊ธ ํค์๋๋ง ๋จ๊ฒจ์ฃผ๋ผ ใ ๋ด๊ฐ ์ด์ฌํ ์ฐพ์๋ณผ๊ฒ.
๊ทธ๋ผ ๋ค๋ค ๊ฐ๋ฐ ์ด์ฌํ ํ๊ณ !
์๋ฃํ์ ์ชผ๊ฐ์ ์ด์๋ฐ์ ํ ๋ณ์ํ์ ์ ์ซ์๋ฅผ ๋ค ๋ด์ผ๋ ค ํ์ง๋ง๊ณ
1์ต์ 100000000 ์ผ๋ก ํ์ ํด์ ์จ๋ผ ์ด๋ง์ด์ผ
biginteger ๊ฒ์
Biginteger, bigdecimal
์ ๋๋ก ํ๋ ค๋ฉด BigNumber ๋ง๋ค์ด์ผ ๋จ
๋๋ long์ผ๋ก 18์๋ฆฌ๊น์ง unscaledValue ๊ธฐ๋กํ๊ณ int๋ก ๊ฐ์ฐ๋๋ scale์ ๋ฐ๋ก ๋๋ ์์ผ๋ก ๋ง๋ค์์
๊ทธ๋ฆฌ๊ณ BigNumber๋ผ๋ฆฌ ์ฐ์ฐํ ๋ scale์ด 19์ด์ ์ฐจ์ด๋๋ฉด(19์๋ฆฌ ์ด์ ์ฐจ์ด) ๊ทธ๋ฅ ์ฐ์ฐ์ ๋ฌด์ํ์
12byte๋ก ๋ฌดํ์ ๊ฐ๊น๊ฒ ์ฒ๋ฆฌํ ์ ์์
์ง์ํ๊ธฐ๋ฒ์ผ๋ก e+2,147,483,647
long long
๋กฑ๋กฑ, ๋๋ธ ๋ ๋ค 8byte๋ฐ๋ฆฌ์
https://docs.microsoft.com/ko-kr/dotnet/api/system.numerics.biginteger?view=net-5.0
C#
๋ด์ฅ big integer ์์ผ๋๊น ์จ
๊ทธ๋ฆฌ๊ณ e+308์ธ๊ฒ๋ ๋ง์ด 308์ด์ง ์ ํจ์ซ์๋ ํจ์ฌ ์์์ ๊ทธ๋ฐ ์์ผ๋ก ์ฐ๋ฉด ์ ๋จ. ํ์ค์ ์ผ๋ก double ์จ๋ ๋๋ ๋ฒ์๋ 10^15 ์ ๋์
BigInt ๋ผ๊ณ ๋นํธ ์๋ฆฌ์๋ฅผ ๋ด๊ฐ ์ง์ ์ค์ ๊ฐ๋ฅํ ์๋ฃํ ์์., ABCDE ์กฐ ๊ฒฝ ํด ์ ๋ถ ์ด๊ฑธ๋ก ํ๋๊ฑฐ์
์ค ๋ต๋ณ๋ค ๊ณ ๋ง์. ์๊ฐ๋ณด๋ค ๋ง์ ๋ฐฉ๋ฒ๋ค์ด ์๊ตฌ๋. ํ๋์ฉ ์ฐพ์๋ณด๊ณ ์ง๊ธ ํ๋ก์ ํธ์ ๋ง๋ ๊ฑธ ์ฐพ์์ ์ ์ฉ์ํฌ๊ฒ. ๋กํ!
๋ง์ฝ์ json์ผ๋ก ๋ฐ๊ณ ์ถ์ผ๋ฉด biginteger๋ ๋ฐ๋ก ํ์ฑ ํด์ค์ผํจ, ๊ทธ ๋ถ๋ถ์ด ์ข ๊ณจ๋๋ฆผ
๋ท ์ซ์๋ฅผ ๋นผ๊ณ ๋ถ์ด๋ฉด ๋ ๊บผ๊ฐ์ผ