실수값(소수점)이 담긴 문자 파싱하는 방법
드리머즈
정보
0
7479
2019.01.13 15:21
1 | float floatPrice = Float.parseFloat("1,234,567.890"); | cs |
위의 코드로 실수값 문자열을 파싱하면 잘 동작할 줄 알았는데 문제가 좀 있네요.
어째서인지 floatPrice를 찍어보면 1234567.9의 값을 출력합니다.
1 2 3 4 5 6 7 8 9 | try{ DecimalFormat myFormatter = new DecimalFormat("#,##0.00"); Number n = myFormatter.parse(stringPrice); formattedStringPrice = myFormatter.format(n); } catch (NumberFormatException nfe) { // do nothing? } catch (ParseException e) { // do nothing? } | cs |
차라리 위의 코드와 같이 Number와 Decimal Format을 이용하니 잘 동작하네요 흠..
혹은..
정확도를 높이기 위해 float가 아닌 double 타입을 사용하는 것도 좋아 보입니다.