首页 > 解决方案 > 类型不匹配:推断类型为 Double 但预期为 Float(顺便使用 Kotlin)

问题描述

问题:所以,显然 3.0 可以被认为是一个浮点数。但出于某种原因,Kotlin 将其视为双重。这对我来说毫无意义。有人能告诉我为什么 Kotlin 将数字 3.0 视为双精度数,而不是浮点数吗?谢谢!

fun main(){
    val num = 3.0
    random(num)
}

fun random(num: Float){
    print(num)
}

注意 这是我使用的在线 IDE。 https://developer.android.com/training/kotlinplayground

标签: kotlin

解决方案


因为您没有键入注释它。

  • Double是一个双精度浮点数。(64位)
  • Float是一个单精度浮点数。(32位)

默认是第一个,因为由于精度不足,您可能会发现较少的意外错误。

您可以指定3.0F,3.0f以使其成为浮点数 ,或者 val number: Float = 3.0还应提示编译器您要处理 32 位浮点数


推荐阅读