baeldung-articles : BAEL-7180 (#15616)
Check if a float value is equivalent to an integer value in Java.
This commit is contained in:
parent
680ebf45a7
commit
f75ab1c847
@ -0,0 +1,64 @@
|
|||||||
|
package com.baeldung.checkiffloatequivalenttointeger;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
public class CheckIfFloatEquivalentToIntegerUnitTest {
|
||||||
|
float floatValue = 10.0f;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenFloatAndIntValues_whenCastingToInt_thenCheckIfFloatValueIsEquivalentToIntegerValue() {
|
||||||
|
int intValue = (int) floatValue;
|
||||||
|
|
||||||
|
assertEquals(floatValue, intValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenFloatAndIntValues_whenUsingTolerance_thenCheckIfFloatValueIsEquivalentToIntegerValue() {
|
||||||
|
int intValue = 10;
|
||||||
|
float tolerance = 0.0001f;
|
||||||
|
|
||||||
|
assertTrue(Math.abs(floatValue - intValue) <= tolerance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenFloatAndIntValues_whenUsingFloatCompare_thenCheckIfFloatValueIsEquivalentToIntegerValue() {
|
||||||
|
int intValue = 10;
|
||||||
|
|
||||||
|
assertEquals(Float.compare(floatValue, intValue), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenFloatAndIntValues_wheUsingRound_thenCheckIfFloatValueIsEquivalentToIntegerValue() {
|
||||||
|
int intValue = 10;
|
||||||
|
|
||||||
|
assertEquals(intValue, Math.round(floatValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenFloatAndIntValues_whenUsingScanner_thenCheckIfFloatValueIsEquivalentToIntegerValue() {
|
||||||
|
String input = "10.0";
|
||||||
|
Scanner sc = new Scanner(new ByteArrayInputStream(input.getBytes()));
|
||||||
|
|
||||||
|
float actualFloatValue;
|
||||||
|
if (sc.hasNextInt()) {
|
||||||
|
int intValue = sc.nextInt();
|
||||||
|
actualFloatValue = intValue;
|
||||||
|
} else if (sc.hasNextFloat()) {
|
||||||
|
actualFloatValue = sc.nextFloat();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
actualFloatValue = Float.NaN;
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
|
||||||
|
assertEquals(floatValue, actualFloatValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user