Float ์ ํ ๊ณผ ๋ถ์ ๋ถ๋ถ์ด (2 ๊ธฐ๋ฐ)^(-1)์ธ ์ฐ์ ์ ๋ํ ์ข์ WASM ๋ฌธ์๊ฐ ๋ง์ด ์์ต๋๋ค.
์๋
๋์ ํ๋ก๊ทธ๋๋จธ๋ ๋ชจ๋ ์ซ์์ ๋ํ ์ ์ผํ 64๋นํธ ๋ถ๋ ์ ํ ์ผ๋ก ์ธํด ์ ์ ํ ์์ ๊ณ์ฐ์ ๋ฌ์ฑํ๊ธฐ ์ํด JavaScript์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด ์์ต๋๋ค.
__Money__ ์ ํ ๋๋ __Decimal__ ์ ํ( ์ 1 , ์ 2 )์ ์ง์ํ ๊ณํ์ด ์์ต๋๊น?
์ค์ง์ ์ผ๋ก ์ญ์ง์ ์ ํ์ ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ค์ํฉ๋๋ค. ๋ง์ ์ธ์ด, ํ๋ซํผ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ง์ํฉ๋๋ค.
WebAssembly๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค ๋ ์ผ๋ฐ์ ์ธ ํ๋์จ์ด ๊ธฐ๋ฅ์ ๋ ธ์ถํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ๊ฒ์ ๋ ธ์ถํ์ง ์์ต๋๋ค. ์ ์ฉํ ๊ธฐ๋ฅ์ด ์ด๋ฌํ ๊ธฐ๋ณธ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ด์ง ์ฝ๋ ์ญ์ง์๋ฅผ ํ๊ฐํฉ๋๋ค.
๊ธฐ๋ฅ์ด ์ผ๋ง๋ ์ ์ฉํ์ง๋ ์ด๊ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ ์ฉํ๋ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค(๋๋ ์ผ๋ถ C++ ์ฝ๋๋ฒ ์ด์ค๋ฅผ WebAssembly๋ก ์ปดํ์ผํ ์ ์์). ํด๋น ๊ธฐ๋ฅ์ ๋ํ ์ฑํผ์ธ์ ์ ์ฉ์ฑ๊ณผ ์กด์ฌ ์ฌ๋ถ๋ ์ธ์ ์ฌ์ฉํ ๊ฒ์ธ์ง์ ๋ํ ์์์ผ ๋ฟ์ ๋๋ค.
OP๊ฐ BCD ์ง์์ ์๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ 10์ง์ ๋ถ๋ ์์์ ์ ๋ํ ์ง์์ ์๊ตฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ์ธ์๋ @jfbastien ์ ๋์ํฉ๋๋ค. ํ๋์จ์ด์์ ์์ฃผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ง์ํ๋ ๋ฐ ์ฃผ์ํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ์ธ์ฉํ Wikipedia ํ์ด์ง์ ๋ฐ๋ฅด๋ฉด ์ง๊ธ๊น์ง IBM ํ๋์จ์ด๋ง์ด ์ด๋ฅผ ๊ตฌํํฉ๋๋ค. ISTR ์ธํ ์ด ์ด๋ฅผ ์ถ๊ตฌํ๋ค๋ ์๋ฌธ์ด ์์์ง๋ง ์๋ฌด ๊ฒ๋ ์คํ๋์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
Intel์ ์ด์ ๊ฐ๋ฅํ๋ค๊ณ ์ฃผ์ฅ ๋๋ ์๋ฎฌ๋ ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ, ๋ฐ๋ผ์ ์๋ง๋ C๋ Wasm์ผ๋ก ์ปดํ์ผ๋ ์ ์์ ๊ฒ์ ๋๋ค. ๋๋ ๋ด ์ถ์ธก์ด ๋ง๋์ง ํ์ธํ๊ธฐ ์ํด ์ ํ ์กฐ์ฌํ์ง ์์์ต๋๋ค.
๋ต๋ณ์ ์ํด @jfbastien ๋ฐ @lars-t-hansen์ ๋์์ฃผ์ธ์.
์ด์ ์ด ๋ฌธ์ ๋ WASM๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ๋ค๋ฅธ ๊ทธ๋ฃน์ผ๋ก ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๋์๊ด์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
OP๊ฐ BCD ์ง์์ ์๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ 10์ง์ ๋ถ๋ ์์์ ์ ๋ํ ์ง์์ ์๊ตฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ์ธ์๋ @jfbastien ์ ๋์ํฉ๋๋ค. ํ๋์จ์ด์์ ์์ฃผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ง์ํ๋ ๋ฐ ์ฃผ์ํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ์ธ์ฉํ Wikipedia ํ์ด์ง์ ๋ฐ๋ฅด๋ฉด ์ง๊ธ๊น์ง IBM ํ๋์จ์ด๋ง์ด ์ด๋ฅผ ๊ตฌํํฉ๋๋ค. ISTR ์ธํ ์ด ์ด๋ฅผ ์ถ๊ตฌํ๋ค๋ ์๋ฌธ์ด ์์์ง๋ง ์๋ฌด ๊ฒ๋ ์คํ๋์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
Intel์ ์ด์ ๊ฐ๋ฅํ๋ค๊ณ ์ฃผ์ฅ ๋๋ ์๋ฎฌ๋ ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ, ๋ฐ๋ผ์ ์๋ง๋ C๋ Wasm์ผ๋ก ์ปดํ์ผ๋ ์ ์์ ๊ฒ์ ๋๋ค. ๋๋ ๋ด ์ถ์ธก์ด ๋ง๋์ง ํ์ธํ๊ธฐ ์ํด ์ ํ ์กฐ์ฌํ์ง ์์์ต๋๋ค.