실수 출력할때 소수점 밑으로 0같은 필요없는 부분 없이 문자열로 바꾸고 싶은데 어떻게 하면 좋을까요?


발생하는 문제 및 실행환경

64비트 운영체제에서 double은 +-253까지 표현하잖아요.

아마 표현하는 수의 크기가 unsigned 32-bit Integer정도 될것 같아서 double을 쓰는데요. 문제는 아래 예제처럼 정수표현을하는데도 실수처럼 나온다는거에요.

제가 String에 넣을때 String.format("%f",value)같은 형식으로 넣는데요. 제가 원하는건

232
0.18
1237875192
4.58
0
1.2345

이런 식인데 문제는 아래처럼

232.00000000
0.18000000000
1237875192.0
4.5800000000
0.00000000
1.23450000

이런식으로 출력이되요... 물론 함수를 만들어서 뒤에 0나오는걸 없앨수있는데 그러면 문자열 연산때문에 퍼포먼스가 낮아질까봐 못하겠고.. 다른 좋은 방법 없을까요?

  • 2016년 01월 18일에 작성됨

조회수 271


1 답변


좋아요
0
싫어요
채택취소하기
public static String fmt(double d)
{
    if(d == (long) d)
        return String.format("%d",(long)d);
    else
        return String.format("%s",d);
}

double이 Integer로 저장되있으면 Integer형식으로 바꾸고 아닐경우 그대로 넣어주는 방법을 이용하면 될것 같습니다.

  • 2016년 01월 18일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close