Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Android
- php
- MotionLayout
- paging
- PagingLib
- android13
- 테스트 자동화
- node
- rx
- MediaPlayer
- mvvm
- SWIFTUI
- RxKotlin
- 동영상
- Kotlin
- MediaSession
- mysql
- SwiftUI Tutorial
- junit
- 인앱결제
- list
- Animation
- GCP
- Koin
- node.js
- google play
- Observable
- Android 13
- Reactive
- databinding
Archives
- Today
- Total
봄날은 갔다. 이제 그 정신으로 공부하자
숫자에 콤마 추가 시 주의할 점 본문
개발하다보면 숫자에 콤마를 추가하는 경우(통화 표시)가 자주 발생합니다.
이러한 경우 대부분 아래와 같이 DecimalFormat를 사용해 통화 표시를 추가해 줍니다.
val formatter = DecimalFormat("#,###")
val cStr = formatter.format(Double.parseDouble(value))
이렇게 하는 경우 치명적인 버그를 내포하게 됩니다.
우리나라의 경우 통화 표시가 3자리 숫자를 기준으로 콤마가 표시되어 문제가 없지만 일부 나라의 경우, 통화 단위 표시가 우리나라와 다른 경우가 많습니다.
우리나라를 포함한 미국과 영국은 소수 자리수 구분은 마침표(“.”)로 구분하고 3자리를 단위로 콤마(“,”)기호를 표시하지만
소수 자리수를 콤마(“,”)로 구분하거나 3자리 단위를 마침표(“.”) 또는 스페이스(“ “)로 구분하는 나라들도 많습니다.
4294967.00 숫자를 표시할 경우 각 나라별로 아래와 같이 상이하게 표시됩니다.
- 대한민국: 4,294,967.00
- 미국: 4,294,967.00
- 프랑스: 4 294 967 295,00
- 이탈리아: 4.294.967,00
앱 사용자가 대한민국이나 미국 사용자가 아닌 프랑스나 이탈리아와 같이 다른 통화 표시 기준을 가진 국가 사용자라면 문제가 발생합니다. 이에 대응하기 위해서는 각 나라별로 통화 표시 기준을 처리해주는게 가장 좋지만 주요 앱 사용자가 대한민국인 경우 이라면 아래와 같이 처리해 주면 됩니다.
val formatter = (DecimalFormat)DecimalFormat.getCurrencyInstance(Locale.KOREA)
formatter.applyPattern(“#,###”)
val cStr = formatter.format(Double.parseDouble(value))
'android Tip' 카테고리의 다른 글
Coroutine - part1 (0) | 2020.12.25 |
---|---|
android 다양한 주변장치 연동 (NFC, USB) (0) | 2020.12.24 |
Custom 버튼 만들기 (0) | 2020.12.21 |
모두가 사용하지만 모두가 모르는 좌표계 이해하고 넘어가기 (0) | 2020.11.25 |
여러개의 Activity 한번에 종료하기 (0) | 2020.11.23 |
Comments