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 } 
  • ¿Cómo se ejecuta el file kotlin en Android Studio 3.0 Canary 4?
  • ejecutar HelloAndroid desde Gradle?
  • ¿Por qué Kotlin soltó la palabra key "nueva"?
  • ¿Cómo instalar Kotlin en Eclipse para Android?
  • Por qué kotlin está equivocado: val minT: largo = -9223372036854775808L //Long.MIN_VALUE
  • Netty wss socket socket drops connection
  • Las testings de Kotlin fallan desde la línea de command con ClassNotFoundException pero funcionan desde IntelliJ
  • Cómo controlar cuándo las importaciones son reemplazadas por comodines en Android Studio en files de Kotlin
  • Operador interesante '===' en Kotlin
  • Kolin - Lista de artículos para el artículo de lists
  • Android Dagger 2.11 con Kotlin, problema de publicación de ContributesAndroidInjector