Intro
kotlin ๊ธฐ๋ฐ์ ์กฐํ API๋ฅผ ๋ง๋ค๋ ๋์ค ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Non-terminating decimal expansion; no exact representable decimal result.
Why?
๊ฐ์ ๊ตฌํ๊ธฐ ์ํด divide๋ฅผ ํตํด ๋ BigDecimal ๊ฐ์ ๋๋ ์ฃผ์์ต๋๋ค. ๋ถ๋ช ์๋ฌ๊ฐ ์์๋๋ฐ, ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ๊ตฌ๊ธ๋ง์ ํ์ฌ ๊ฒ์ํด๋ดค์ต๋๋ค. BigDecimal ๋๋๊ธฐ๋ฅผ ํ ๊ฒฝ์ฐ ์ ํํ ๊ฐ์ด ๋จ์ด์ง์ง ์์ผ๋ฉด ๋ค์์ "Non-terminating decimal expansion; no exact representable decimal result." ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๊ณ ํฉ๋๋ค.
๊ธฐ์กด ํ ์คํธ ํ๋ ๋ฐ์ดํฐ์์๋ ์ ํํ ๊ฐ์ด ๋จ์ด์ ธ ๋๋ ์ก๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์์ง๋ง, ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ์์๋ ๊ฐ์ด ๋๋์ด ๋จ์ด์ง์ง ์์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
How to solve the problem
divide ์ ํ์๋ก ์๋ฆฌ์์ ๊ฒฐ๊ณผ์ ์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
bigDecimal.divide(value, 2, BigDecimal.ROUND_CEILING);
- ์ฌ๋ฆผ : ROUND_CEILING
- ๋ด๋ฆผ : ROUND_FLOOR
- ๋ฐ์ฌ๋ฆผ : ROUND_HALF_UP
- ๋ฐ๋ด๋ฆผ : ROUND_HALF_DOWN
https://development-storage.tistory.com/3