C#电话账单计算错误:期望103.13却得75.35,求修正方法
修正C#电话账单计算错误
你当前的代码把费率(rate)和surge费用当成固定金额直接加到账单上了,但实际上这两个应该是百分比加成——rate是10%的费率,surge是25%的额外涨幅,所以需要用乘法计算,而不是加法。
修正后的代码如下:
double rate = 0.10; // 10% 的费率 double surge = 0.25; // 25% 的 surge 涨幅 int phoneBill = 75; // 先计算加费率后的金额,再叠加surge涨幅,最后四舍五入到两位小数 double totalAmount = Math.Round(phoneBill * (1 + rate) * (1 + surge), 2); WriteLine("New Phone Bill"); WriteLine("Your new Phone Bill is $" + totalAmount); ReadKey();
计算逻辑说明:
phoneBill * (1 + rate):75 × 1.10 = 82.5,得到加上10%费率后的金额- 再乘以
(1 + surge):82.5 × 1.25 = 103.125,通过Math.Round(..., 2)四舍五入到两位小数,正好得到预期的103.13
内容的提问来源于stack exchange,提问作者xchangecode
相关产品推荐
相关产品推荐

