Verificando si el resultado de un cálculo es un número integer

¿Qué es un método para verificar si la salida de un cálculo es un número integer? He intentado hacer esto:

if ((i / 3) is Int ) { print("Whole Number") } 

Pero parece estar comprobando el tipo de variable, no cuál es el resultado.


Editar: Aparentemente, si la variable es un número integer, networkingondea automáticamente la salida de la operación, así que tuve que hacer algo como esto:

  if((i.toFloat()/3) == (i / 3).toFloat()){ println("Whole Number") 

Una manera fácil de verificar si a / b es un número integer es verificar que el rest sea cero: a % b == 0 .

Sin embargo, tenga en count que si ambos operandos de / son de un tipo integral ( Short , Int , Long ), entonces el resultado de la split siempre es un número integer (la parte fraccional se acaba de soltar), entonces, si tiene un val i: Int = 2 luego i % 3 == 1 pero i / 3 == 0 . Para usar la split fraccional, haga al less uno de los operandos fraccional como i / 3.0 o i.toDouble / 3 .

En caso de que quiera verificar que un Double esté completo, puede usar d % 1.0 == 0.0 o verificar que Math.floor(d) == d .

is operador en Kotlin se usa para verificar la instancia del object.

Aquí ha escrito (i / 3) is Int significa:

Está comprobando que (i / 3) es una instancia de Int o no.

En Kotlin, debe escribir el código siguiente para verificar que un número sea un número completo o no.

Si yo soy un int

 if((i / 3).toInt() == (i / 3)) { print("Whole Number") } 

de lo contrario, también puede usar el siguiente código:

 if((i / 3).toInt().compareTo(i / 3) == 0) { print("Whole Number") } 

Una forma de comprobar si un Double es un número integer sin conocer el tipo de cálculo (esto funciona para algo más que una split) sería restar la parte entera para get la parte de la fracción y compararla con cero:

 fun isWhole(value: Double):Boolean { return value - value.toInt() == 0.0 } 
  • Usa el reino en todos los hilos
  • Asignar un nuevo valor a las variables mediante el uso de método en Kotlin?
  • ¿Por qué solo se pueden delegar interfaces en kotlin?
  • Kotlin marcó excepciones alternativa
  • Forma equivalente de Scala de Rango a class personalizada
  • No se puede acceder a val en Kotlin
  • kapt: ¿Cómo procesar las fonts de testing?
  • ¿Por qué usar Scopes y las annotations de Singleton en Dagger2 con kotlin provoca un error al comstackr?
  • ExpandableListView no se muestra en mi actividad
  • El reino Kotlin no está en el esquema
  • Cambios en el valor de ObservableField no propagados