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
이라는 클래스를 사용할 수 있게 됩니다.
해당 클래스의 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