본문 바로가기
안드로이드

[Android] 소수점 자릿수를 정하는 String.format

by 코딩히어로 2022. 8. 19.
728x90

1


자바를 기준으로 작성된 Android 프로그램에서 TextView에 어떠한 값을 출력할 때

이 값이 실수형인 경우 소수점 출력에 있어서 전체 자릿수가 적용이 되어 출력되게 됩니다.

 

소수점이 2~3번째자리까지면 상관없겠지만 만약 5자리를 넘어가게 된다면 어떻게 될까요

물론 소수점을 반올림하여 사용하는 방법도 많이 있지만 오늘은 String.format을 사용하여

소수점 자리수를 끊어서 출력하는 방법에 대해 알아보겠습니다.

private float data = 52.32143
private TextView outtxt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
	
    outtxt = (TextView)findViewById(R.id.output);
    outtxt.setText(String.valueOf(data));
    
}

위와 같이 출력하게 될 경우 outtxt에 출력되는 내용은 다음과 같습니다

52.32143

물론 화면적인 제약이 없다는 가정하에서는 위와 같은 출력은 문제가 되지 않습니다

하지만 세로의 폭이 작은 화면에서 저런 실수형 출력이 연속으로 나열되어 있다면

데이터가 어디까지 출력될지 모르고 겹쳐서 보이는 등의 문제가 발생하게 됩니다

 

그렇기 때문에 소수점 자리수는 최대한 간결하게 표현하는 것이 좋습니다

대부분의 데이터의 경우 소수점 두번째자리 이후의 수는 워낙 작은 숫자이기 때문에 정말 세밀한

센서 측정의 목적이 아니라면 두 번째 자리까지 표시하고 나머지 숫자는 버리는 편입니다

 


private float data = 52.32143
private TextView outtxt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
	
    outtxt = (TextView)findViewById(R.id.output);
    outtxt.setText(String.format("%.2f",data));
    
}

맨 처음 코드와 달라진 점은 String.valueOf 부분이 String.format으로 변경되었다는 것인데

String.format은 해당 문자열을 만들 때 어떠한 포맷으로 지정해주는 기능으로

%.2f는 소수점 2자리까지 표현하라는 의미입니다

만약 1자리나 3자리로 지정하고 싶다면 %.1f 또는 %.3f를 지정해주면 됩니다.

 

위 코드의 출력 결과는 다음과 같습니다

52.32

 

728x90
반응형

'안드로이드' 카테고리의 다른 글

[Android] FCM 알림 구현  (2) 2022.08.31
[Android] Thread 사용하기  (2) 2022.08.30
[Android] xml 배경 투명도 설정하기  (2) 2022.08.09
[Android] String 배열 초기화  (2) 2022.08.04
[Android] JSON 데이터 수신 방법  (2) 2022.08.03

댓글