Notice
Recent Posts
Recent Comments
Link
투케이2K
258. (java/자바) [유틸 파일] Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시 - 소수점 제한 출력 본문
Java
258. (java/자바) [유틸 파일] Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시 - 소수점 제한 출력
투케이2K 2022. 4. 6. 13:48[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
// TODO [Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시]
public static String doubleCutLength(double doubleData, int length){
/**
* // -----------------------------------------
* [doubleCutLength 메소드 설명]
* // -----------------------------------------
* 1. Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시 [반올림 없음]
* // -----------------------------------------
* 2. 호출 방식 :
* C_Util.doubleCutLength(123.4567, 2);
* C_Util.doubleCutLength(-123.4567, 2);
* // -----------------------------------------
* 3. 리턴 데이터 : 123.45 : 소수점 특정 자릿수 기준 제한 문자열 데이터
* // -----------------------------------------
* */
// [리턴 데이터 변수 선언 실시]
String result = "";
// [인풋 데이터 체크 수행 실시]
if (length >= 0){ // [0 자릿수 이상 들어온 경우]
try {
// [필요 변수 선언 실시]
int dotCount = 0; // 점 개수
int dotLocation = 0; // 점 위치
int dotLength = 0; // 소수점 이하 자릿수 기준
// [for 문을 돌면서 데이터 확인 실시]
String strData = String.valueOf(doubleData);
for (int i=0; i<strData.length(); i++){
if (strData.charAt(i) == '.'){ // 문자열 특정 자릿수가 점 (.) 인 경우
dotCount = dotCount + 1; // 카운트 증가
dotLocation = i; // 위치 지정
String subString = strData.substring((dotLocation + 1), strData.length());
dotLength = subString.length(); // 소수점 이하 자릿수 확인
}
}
/*
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[C_Util >> doubleCutLength() :: Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시]");
Log.i("","\n"+"[dotCount [소수점 개수] :: "+String.valueOf(dotCount)+"]");
Log.i("","\n"+"[dotLocation [소수점 위치] :: "+String.valueOf(dotLocation)+"]");
Log.i("","\n"+"[dotLength [소수점 이하 자릿수] :: "+String.valueOf(dotLength)+"]");
Log.d("//===========//","================================================");
Log.i("---","---");
// */
// [정상적으로 소수점이 포함된 경우]
if (dotCount == 1){
if (length > dotLength){ // [원본 데이터 보다 인풋값이 큰 경우 >> 0 값으로 채움]
result = strData.substring(0, strData.length());
int zeroCount = length - dotLength;
for (int j=0; j<zeroCount; j++){
result = result + "0";
}
}
else {
if (length == 0){
result = strData.substring(0, (dotLocation + length));
}
else {
result = strData.substring(0, (dotLocation + length + 1));
}
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
// [로그 출력 실시]
///*
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[C_Util >> doubleCutLength() :: Double 소수점 데이터를 특정 소수점 자릿수 기준으로 자르기 실시]");
Log.i("","\n"+"[input [double] :: "+String.valueOf(doubleData)+"]");
Log.i("","\n"+"[input [length] :: "+String.valueOf(length)+"]");
Log.i("","\n"+"[result [string] :: "+String.valueOf(result)+"]");
Log.d("//===========//","================================================");
Log.i("---","---");
// */
// [리턴 데이터 반환 실시]
return result;
}
[결과 출력]
반응형
'Java' 카테고리의 다른 글
260. (java/자바) isEmpty , isBlank 사용해 데이터 null 널 여부 확인 실시 (0) | 2022.04.12 |
---|---|
259. (java/자바) [유틸 파일] subList 사용해 array list 가변 배열 데이터 부분 데이터 반환 실시 (0) | 2022.04.07 |
257. (java/자바) [유틸 파일] 문자열 데이터 모두 숫자 (정수) 구성 여부 확인 - Character isDigit (0) | 2022.04.05 |
256. (java/자바) [유틸 파일] ArrayList 배열 중복 데이터 제거 실시 (0) | 2022.04.05 |
255. (java/자바) [유틸 파일] URL 인코딩 , 디코딩 수행 실시 (0) | 2022.04.03 |
Comments