본문 바로가기
Java/Java with Error

[해결 방법] java.util.IllegalFormatPrecisionException

by HJ0216 2023. 2. 17.

 기본 환경: 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
*/