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

Kotlin计算器百分比功能异常问题排查求助

问题排查与解决方案

问题根源出在百分比运算的逻辑上:

  • 直接输入10后点击%时,currentResult为初始值0(未点击等号确认结果,isEqualButtonClicked为false),执行(0 * 10) / 100得到0,不符合预期。
  • 点击等号后,currentResult被赋值为10,再点击%时执行(10 * 10) / 100得到1,符合预期。

你需要调整百分比运算的基数判断逻辑,当没有有效历史结果时,用当前输入的数字作为基数计算。修改PERCENTAGE分支代码如下:

PERCENTAGE -> {
    // 当已有确认的历史结果时用currentResult,否则用当前输入的数字作为基数
    val calculationBase = if (isEqualButtonClicked && currentResult != 0.0) currentResult else thisOperationNumber
    thisOperationNumber = (calculationBase * thisOperationNumber) / 100
    currentValue = formatDoubleToString(thisOperationNumber)
}

逻辑说明

  • 若isEqualButtonClicked为true且currentResult不为0,说明存在已确认的历史运算结果,沿用原逻辑用currentResult作为基数。
  • 若未点击过等号(无有效历史结果),则用当前输入的thisOperationNumber作为基数,此时输入10点击%会计算(10 * 10) / 100 = 1,符合你的预期。

如果你的计算器设计需求是直接输入数字点击%得到当前数的百分之一(即10→0.1),则可将计算逻辑简化为:

thisOperationNumber = thisOperationNumber / 100

内容的提问来源于stack exchange,提问作者Camp Nerd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:05:20