我正在尝试使用Fragment
将双精度值转换为四舍五入的整数,但是却遇到了roundToInt()
异常。
我正在经历官方documentation of Kottlin仍然没有运气。
代码:
编辑1:
Unresolved Reference
错误日志:
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+".")
}
答案 0 :(得分:2)
您需要导入此功能。
import kotlin.math.roundToInt
roundToInt()
是math
包提供的扩展功能,而不是Double
的成员功能。
答案 1 :(得分:0)
由于meal_cost
,trip_percent
和tax_percent
是整数tip
和tax
也是整数。这意味着totalCost
的类型为Int
。未为roundToInt()
定义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+".")