Kotlin: ¿Cómo puedo verificar si un número tiene puntos decimales (la solución del module no funciona)

Soy nuevo en Kotlin y vine de JS. Actualmente estoy haciendo una aplicación de calculadora y estoy trabajando en el operador '%'. Necesito averiguar si la salida de la 'input actual * 0.01' es un número integer o con puntos decimales. Usualmente, usaría

num % 1 !== 0 

pero no funciona en Kotlin y me da el error "! = el operador no puede aplicarse a Double o Int". Es lo mismo para Cadenas o Caracteres. Mi código de Kotlin está abajo, ¡espero que alguien pueda ayudar! ¡Gracias!

 val percentResult: Double() = result.toDouble() * 0.01 if(percentResult % 1 != 0) { result = (NumberFormat.getInstance().format(percentResult)).toString() } else { result = percentResult.toInt().toString() } 

Código equivalente

El 0 es un int, por lo que necesita decir explícitamente que quiere un doble como este:

 fun factor100(n: Number) = n.toDouble() % 100.0 == 0.0 

Por qué esto probablemente no es lo que quieres

Para valores dobles esto puede no funcionar correctamente, debido a errores de punto flotante, por lo que querrá verificar si la diferencia es menor que una pequeña cantidad.

Un ejemplo de cómo se rompe esto es este:

 fun main(args: Array<String>) { var x = 0.3 - 0.2 // 0.1 (ish) x *= 1000 // 100 (ish) println(factor100(x)) // False } fun factor100(n: Number) = n.toDouble() % 100.0 == 0.0 
  • ¿Cómo puedo get el operador de split de Python en Kotlin?
  • ¿Por qué el código que inicializa una propiedad de interfaz variable no se codificará en la compilation del bloque init?
  • Cómo clonar o copyr una list en kotlin
  • Error de reference no resuelto al llamar al método add en Kotlin Set interface
  • Reemplazar el doble para cada uno por observable
  • Solo las dependencies se copyn cuando se implementan plugins intellij
  • Dagger 2 en testings de unidad con Kotlin
  • App build.gradle.kts Archivo sin resolver Erros de reference
  • Gson setDateFormat hace exception cuando la date es nula
  • Problema reificado de la class Android Kotlin
  • Gravedad compleja en Anko