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