PersesTitan(페르) 기술블로그

[Java] Double값이 정수인지 확인하기 본문

Language/Java

[Java] Double값이 정수인지 확인하기

PersesTitan(페르) 2022. 12. 28. 08:04

나머지 이용

1로 나누고 나머지가 존재한다면 소수점값이 있다는 의미이므로 해당 원리를 이용하여 값이 정수값인지 확인할 수 있습니다.

코드

public boolean isInteger(double num) {
    return num % 1 == 0.0;
}

정수 변환

값이 정수라면 정수형으로 변환하더라도 값이 같다는 원리를 이용한 방법입니다.

코드

public boolean isInteger(double num) {
    return num == (int) num;
}

소수점 버림 이용

소수점 버림, 올림, 반올림 무엇을 사용해도 상관 없습니다.
해당 동작후 원래 값과 일치하는 여부로 해당 값이 정수인지 확인합니다.

코드

public boolean isInteger(double num) {
    return Math.floor(num) == num;
}

DoubleMath

해당 클래스는 의존성을 추가해주어야합니다.
의존성을 추가해주면 DoubleMath이라는 클래스를 사용할 수 있게 됩니다.
해당 클래스의 isMathematicalInteger메소드를 사용하면 정수인지 확인할 수 있습니다.

Maven

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava-parent</artifactId>
    <version>31.1-jre</version>
    <type>pom</type>
</dependency>

Gradle

implementation 'com.google.guava:guava:31.1-jre'

코드

public boolean isInteger(double num) {
    return DoubleMath.isMathematicalInteger(num);
}

예제

코드

System.out.println(isInteger(1.0));
System.out.println(isInteger(83.0));
System.out.println(isInteger(0.0));
System.out.println(isInteger(1.24));
System.out.println(isInteger(0.345));

출력

true
true
true
false
false