java - redondear - Cómo comprobar si un flotante tiene un valor entero
java round up (7)
Debe verificar que la parte fraccional del número sea 0. Uso
x==Math.ceil(x)
o
x==Math.round(x)
o algo así
¿Cómo verificar si el valor de entrada es entero o flotante?
Supongamos que 312/100 = 3.12. Aquí necesito verificar si 3.12 es flotante o entero.
Haz esto para distinguir eso.
Si, por ejemplo, su número es 3.1214 y está almacenado en num pero no conoce el tipo de num:
num = 3.1214
// cast num to int
int x = (int)num;
if(x == num)
{
// num is a integer
}
else
// num is float
}
En este ejemplo, vemos que num no es entero.
Los métodos de ceil y floor te ayudarán a determinar si el número es un número entero.
Sin embargo, si desea determinar si el número puede representarse mediante un valor int.
if(value == (int) value)
o un entero largo (entero de 64 bits)
if(value == (long) value)
o puede ser representado con seguridad por un flotador sin pérdida de precisión
if(value == (float) value)
Por cierto: no use un flotador de 32 bits a menos que sea necesario. En el 99% de los casos, un doble de 64 bits es una mejor opción.
Puede usar la clase de escáner para determinar si un número determinado puede leerse como tipo Int o Float.
import java.util.Scanner;
public class Test {
public static void main(String args[] ) throws Exception {
Scanner sc=new Scanner(System.in);
if(sc.hasNextInt())
System.out.println("This input is of type Integer");
else if(sc.hasNextFloat())
System.out.println("This input is of type Float");
else
System.out.println("This is something else");
}
}
Qué tal esto. usando el operador de módulo
if(a%b==0)
{
System.out.println("b is a factor of a. i.e. the result of a/b is going to be an integer");
}
else
{
System.out.println("b is NOT a factor of a");
}
También:
(value % 1) == 0
¡trabajaría!
if (value == Math.round(value)) {
System.out.println("Integer");
} else {
System.out.println("Not an integer");
}