round redondear decimals decimales java floating-point int number-rounding

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"); }