You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android/Kotlin运算顺序不同导致代码运行效果异常问题咨询

问题原因

你遇到的是整数除法的截断规则问题,这是JVM系语言(Kotlin/Java等)的基础运算规则,核心知识点如下:

  • 两个整数做除法运算时,默认执行截断向零取整的整数除法,只会保留整数部分,小数部分直接丢弃。
  • 乘除运算优先级相同,会按照从左到右的顺序依次执行。

第一段代码正常运行的逻辑

运算表达式为 1 * 100 / questionList.size:

  1. 先执行左侧乘法:1 * 100 得到整数结果 100
  2. 再执行除法:100 / questionList.size,只要总题数不超过100,这里得到的结果就是≥1的整数,累加后correctAnswers数值会正常变化,textView自然会更新。

第二段代码无响应的逻辑

运算表达式为 1 / questionList.size * 100:

  1. 先执行左侧除法:1 / questionList.size,只要总题数questionList.size大于1,这个式子的结果就是小于1的小数,整数除法会直接截断小数部分得到结果0
  2. 再执行乘法:0 * 100 = 0,每次累加的都是0,correctAnswers数值不会有任何变化,textView看起来就像没有更新。

修复方案

如果需要保留小数精度,可以将任意一个操作数转为浮点型再运算:

correctAnswers += 1.0 / questionList.size * 100

如果只需要整数百分比,保持第一段代码的运算顺序即可。

内容的提问来源于stack exchange,提问作者Vsevolod IV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 08:36:01