【问题标题】:Error: unresolved reference: roundToInt错误:未解决的参考:roundToInt
【发布时间】:2018-08-02 14:13:54
【问题描述】:

我正在尝试使用roundToInt() 将双精度值转换为四舍五入的整数,但我得到Unresolved Reference 异常。

我正在通过官方documentation of Kottlin仍然没有运气。

代码:

编辑 1:

fun solve(meal_cost: Double, tip_percent: Int, tax_percent: Int): Unit {
    var tip = (meal_cost *tip_percent)/100
    var tax = (meal_cost *tax_percent)/100
    var totalCost = (tip+tax+meal_cost).roundToInt()

    System.out.println("The total cost is "+totalCost+".")
}

错误日志:

Solution.kt:25:41: error: unresolved reference: roundToInt
var totalCost = (tip+tax+meal_cost).roundToInt()
                                    ^   

【问题讨论】:

  • meal_cost、tip_percent 和 tax_percent 的类型有哪些?如果他们是Int,小费和税也是Int。试试/100.0
  • meal_cost 双变量

标签: kotlin


【解决方案1】:

你需要导入这个函数。

import kotlin.math.roundToInt

roundToInt()math包提供的扩展函数,不是Double的成员函数。

【讨论】:

    【解决方案2】:

    因为meal_costtrip_percenttax_percent 是整数tiptax 也是整数。这意味着totalCost 的类型为IntroundToInt() 没有为 Int 定义。

    /100 更改为/100.0 以便除以双精度,结果也将变为双精度。

    var tip = (meal_cost *tip_percent)/100.0 // divide by double to make the result a double
    var tax = (meal_cost *tax_percent)/100.0
    var totalCost = (tip+tax+meal_cost).roundToInt() //Works now.
    System.out.println("The total cost is "+totalCost+".") 
    

    【讨论】:

    • meal_cost,是双变量
    猜你喜欢
    • 1970-01-01
    • 2020-12-09
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2020-11-24
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多