홈 > 프로그래밍 > 자바
자바

실수값(소수점)이 담긴 문자 파싱하는 방법

드리머즈 0 7568


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 타입을 사용하는 것도 좋아 보입니다.

0 Comments
제목