GnuCash를 써보신 분은 아시겠지만, 10원이 10.00원으로 표시되는 문제가 있습니다. (데스크탑 버전이든 안드로이드 버전이든 둘 다 똑같습니다. 위 스크린샷 참조)

처음에는 cent나 penny가 있는 영미권 화폐속성을 그대로 가져와서 그런가보다 생각했는데, 조금 조사해보니 ISO-4217라는 국제표준이 있고, GnuCash는 이 표준을 xml파일로 가져다가 그대로 사용하기만 하고 있더군요.

그런데 Gnucash 소스코드 안의 관련 XML 파일을 보니 내용이 조금 이상합니다. 일본 엔화도 원화랑 똑같이 소수점 이하는 사용하지 않고 있는데, KRW와 JPY의 내용이 다릅니다. 살펴보니, JPY는 smallest-fraction이 1로 되어 있어 소수점 이하가 무시되고, KRW는 100으로 되어 있어 소수점 이하 2자리까지 값이 표시되는 상황으로 판단되더군요.

<!-- "KRW" - "Won"
-->
<currency
  isocode="KRW"
  ...(중략)...
  parts-per-unit="1"
  smallest-fraction="100"
  local-symbol="₩"
/>
<!-- "JPY" - "Yen"
-->
<currency
  isocode="JPY"
  ...(중략)...
  parts-per-unit="100"
  smallest-fraction="1"
  local-symbol="JP¥"
/>

안드로이드 버전의 XML파일을 수정하고 실행해보니 원화계정에서도 소수점 이하가 표시되지 않습니다. (만세!)

왜 이런 일이 생겼는지 검색해보니, 역사적으로 존재했던 원의 하위단위인 ‘전’의 흔적이 아직 남아 있는 것 것으로 보입니다. (참고로, 1원 = 100전이었습니다)

위키피디어의 대한민국 원 영문페이지에 “The jeon is no longer used for everyday transactions”라는 내용이 나와 있길래, 이를 근거로 GnuCash와 GnuCash for Android 두 프로젝트 모두에 변경요청을 해두었습니다. 빠른 시일 안에 빌드에 포함되었으면 좋겠습니다.