2017-10-16 446 views
2

我是Kotlin的新手,來自JS。我目前正在製作一個計算器應用程序,並正在處理'%'運算符。我需要找出'當前輸入* 0.01'的輸出是整數還是小數點。通常情況下,我會用Kotlin:我如何檢查數字是否有小數點(模數解決方案不起作用)

num % 1 !== 0 

但它不能在科特林工作,給我的錯誤「!=操作符不能應用於雙人或詮釋」。字符串或字符是一樣的。我的Kotlin代碼在下面,希望有人能幫忙!謝謝!

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

回答

4

等效代碼

的0是一個int,所以你需要明確地說你要這樣的雙:

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

爲什麼這可能不是你想要

什麼

對於double值,由於浮點錯誤,這可能無法正常工作,所以您需要檢查差值是否小於一些小值。

的這是怎麼破的一個例子是這樣的:

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 
+0

它奇妙的作品,感謝jrtapsell! – eLn86

相關問題