Kotlin电话账单计算器问题:无法正确计算15%税费
电话账单计算器税费问题修正
问题所在
你代码里的税费计算逻辑错误:当前是把15/100=0.15直接加到费用里,这不是对小计收取15%税费,而是固定加0.15。正确逻辑应该是小计金额 × 1.15(或者 小计 + 小计×0.15),这样才是在小计基础上增收15%税费。
另外,修改原始输入变量numberOfCalls的值虽然不影响结果,但不够规范,建议用临时变量存储超出套餐的分钟数。
修正后的代码
import java.util.* fun main(args: Array<String>) { val scan = Scanner(System.`in`) print("Enter the Total Minutes of Calls Made this Month: ") val totalMinutes = scan.nextInt() val baseFee = 10f val overMinuteRate = 0.25f val taxRate = 0.15f // 计算税前小计 val subtotal = if (totalMinutes <= 60) { baseFee } else { val overMinutes = totalMinutes - 60 baseFee + overMinutes * overMinuteRate } // 加上15%税费 val phoneBill = subtotal * (1 + taxRate) println("\nTelephone Bill this Month = $phoneBill") }
核心修改说明
- 保留原始输入
totalMinutes,用临时变量overMinutes存储超出套餐的分钟数,代码逻辑更清晰 - 拆分计算步骤:先算出税前小计,再基于小计计算税费,逻辑更直观
- 税费计算改为
subtotal * (1 + taxRate),准确实现“对小计收取15%税费”的需求 - 提取常量并命名,提升代码的可读性和后续维护性
内容的提问来源于stack exchange,提问作者Sonnalight
相关产品推荐
相关产品推荐

