우선 예시코드로 우선 이해해보자.
패턴
아래의 코드를 보면 1234567.89란 숫자를 #,##0.00형식으로 바꾸기로 지정하고 출력했다.
import java.text.DecimalFormat;
public class DecimalFormatExample {
public static void main(String[] args) {
double number = 1234567.89;
// 패턴 정의: #는 숫자가 없으면 표시하지 않음, 0은 반드시 표시
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
// 숫자를 형식화하여 문자열로 변환
String formattedNumber = decimalFormat.format(number);
System.out.println("Formatted Number: " + formattedNumber);
}
}
//Formatted Number: 1,234,567.89
기호
아래의 코드를 보면 양수와 음수를 정해진 패턴으로 정의하고,
양수일경우에는 $만추가, 음수일경우에는 ()$를 추가하도록 했다.
import java.text.DecimalFormat;
public class SymbolFormattingExample {
public static void main(String[] args) {
double positiveNumber = 1234.56;
double negativeNumber = -5678.90;
// 패턴 정의
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
// 양수를 형식화하여 문자열로 변환 (달러 기호 추가)
decimalFormat.setPositivePrefix("$");
String formattedPositiveNumber = decimalFormat.format(positiveNumber);
System.out.println("Formatted Positive Number: " + formattedPositiveNumber);
// 음수를 형식화하여 문자열로 변환 (괄호로 감싸고 달러 기호 추가)
decimalFormat.setPositivePrefix("(");
decimalFormat.setPositiveSuffix(")$");
String formattedNegativeNumber = decimalFormat.format(negativeNumber);
System.out.println("Formatted Negative Number: " + formattedNegativeNumber);
}
}
//Formatted Positive Number: $1,234.56
//Formatted Negative Number: ($5,678.90)
Format 기호와 패턴을 알아보자.
0
숫자를 표시할 자리, 숫자가 없으면 0으로 나타난다.
DecimalFormat decimalFormat = new DecimalFormat("0000");
System.out.println(decimalFormat.format(123)); // 출력: 0123
#
숫자를 표시할 자리, 숫자가 없으면 표시되지않는다.
DecimalFormat decimalFormat = new DecimalFormat("####");
System.out.println(decimalFormat.format(123)); // 출력: 123
.
소수점
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
System.out.println(decimalFormat.format(1234.567)); // 출력: 1,234.57
-
음수
DecimalFormat decimalFormat = new DecimalFormat("0.00;-0.00");
System.out.println(decimalFormat.format(-12.34)); // 출력: -12.34
,
천단위 구분기호
DecimalFormat decimalFormat = new DecimalFormat("#,##0");
System.out.println(decimalFormat.format(1234567)); // 출력: 1,234,567
E
지수기호, 거듭제곱을 나타냄, E0은 지수의 최소 자릿수를 나타낸다.
DecimalFormat decimalFormat = new DecimalFormat("#.##E0");
System.out.println(decimalFormat.format(12345.6789)); // 출력: 1.23E4
;
양수와 음수 패턴을 구분하다
DecimalFormat decimalFormat = new DecimalFormat("0.00;(-0.00)");
System.out.println(decimalFormat.format(-12.34)); // 출력: (12.34)
%
백분율
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
System.out.println(decimalFormat.format(0.123)); // 출력: 12.30%
\u2030
천분율
DecimalFormat decimalFormat = new DecimalFormat("0.00\u2030");
System.out.println(decimalFormat.format(0.123)); // 출력: 123.00‰
\u00A4
통화
DecimalFormat decimalFormat = new DecimalFormat("\u00A4#,##0.00");
System.out.println(decimalFormat.format(1234.56)); // 출력: $1,234.56
'
묶어 리터럴로 사용
DecimalFormat decimalFormat = new DecimalFormat("'Total: '0.00");
System.out.println(decimalFormat.format(123.45)); // 출력: Total: 123.45
'JAVA' 카테고리의 다른 글
ChoiceFormat, limits와 grades를 설정해 등급추출하기 (0) | 2023.12.28 |
---|---|
SimpleDateFormat, Date와 Calendar보다 쉽게 날짜 형식 지정하기 (0) | 2023.12.28 |
Calendar와 Date, 이를 이용한 날짜/ 일수 출력하기 (0) | 2023.12.28 |
java.math.BigDecimal, double타입보다 오차가 없도록 2진수로 변환해 수를 다루다 (0) | 2023.12.26 |
java.math.BigInteger long보다 큰 정수값을 계산할때 (0) | 2023.12.26 |