Kotlin中Int转Double除法运算结果与教材不符,哪个正确?
结论
你本地运行得到的2.2是正确结果,教材标注的1.7属于编写时的计算错误。
变量计算过程验证
按照Kotlin运算符优先级规则,各变量的计算逻辑完全可复现:
- 第一步计算
num:算术运算优先级乘法高于减法,4*3=12,因此15-12=3,num值为3 - 第二步计算
num2:取模运算65%7等价于求65除以7的余数,7*9=63,余数为2,num2值为2 - 第三步计算
num4:num.toDouble()将Int类型的3转为Double类型的3.0- Kotlin中不同数值类型运算时会自动向上转型为精度更高的类型,因此
3.0 / 2等价于3.0 / 2.0 = 1.5 - 加0.7后得到最终结果
1.5 + 0.7 = 2.2
教材出错的常见可能性
大概率是编写时手动计算失误,常见错误场景包括:
- 错误计算
65%7的结果为3,此时3.0/3 +0.7=1.7 - 错误改变
15-4*3的运算顺序,先算减法再算乘法得到错误的num值 - 公式编写时存在笔误,比如原本要写的表达式带括号但漏写
内容的提问来源于stack exchange,提问作者pijyuuuuu
相关产品推荐
相关产品推荐

