☕ 기본 환경: IDE: Eclipse, Language: Java
발생 Exception
Java에서 다음 Source Code를 실행할 경우,
public class StrFormat {
public static void main(String[] args) {
double d = 2.3;
System.out.println(String.format("%.2d", d));
}
}
⭐ java.util.IllegalFormatPrecisionException: 2 발생
Exception 원인
String.format: %d: 10진수 int type
int type data format으로 doubloe or float type data로 표현하고자 함
해결 방법
1. 실수 type data format으로 변경
public class StrFormat {
public static void main(String[] args) {
double d = 2.3;
System.out.println(String.format("%.2f", d));
}
}
/*
Result
2.30
*/
2. 정수 type data format에 맞추기
: (cast) double type data -> int type
: int data 표현 방식으로 변경
public class StrFormat {
public static void main(String[] args) {
double d = 2.3;
System.out.println(String.format("%02d", (int) d));
}
}
/*
Result
02
*/
'Java > Java with Error' 카테고리의 다른 글
[해결 방법] java.io.InvalidClassException (0) | 2023.02.17 |
---|---|
[해결 방법] java.io.NotSerializableException (0) | 2023.02.17 |
[해결 방법] java.util.ConcurrentModificationException (0) | 2023.02.16 |
[해결 방법] java.lang.Error (0) | 2023.02.16 |
[해결 방법] java.lang.Error (0) | 2023.02.13 |