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

C#控制台程序返回码0但不输出复利计算结果的原因是什么?

问题原因及修复方案

无输出结果的直接原因

你调用Console.WriteLine()方法时使用了复合格式化的传参方式,但输出的字符串模板中没有对应参数的占位符:
原错误代码:

Console.WriteLine("The future value of your investment is:",  Convert.ToString(futureCapital));

上述代码中,第一个字符串参数里没有{0}占位符来匹配第二个参数的内容,所以计算得到的终值不会被插入到输出内容里,自然看不到结果。
修复方案二选一即可:

// 方案1:补全占位符
Console.WriteLine("最终投资终值为:{0}", futureCapital);
// 方案2:使用C# 6及以上支持的字符串插值,可读性更高
Console.WriteLine($"最终投资终值为:{futureCapital}");

注:不需要手动调用Convert.ToString()做类型转换,Console.WriteLine()会自动处理数值到字符串的转换

隐藏的逻辑错误:复利公式参数顺序错误

标准复利终值计算公式为:终值 = 本金 * (1 + 年利率/年复利次数) ^ (年复利次数 * 投资年限),对应C#中Math.Pow(底数, 指数)的语法,你的代码把底数和指数的顺序写反了,就算输出了内容,计算结果也完全不符合预期。
原错误代码:

double nt = Math.Pow((compoundNumber * investmentPeriod),(1+interestRate / compoundNumber ));
double futureCapital = investment * nt;

修复后代码:

// 底数 = 1 + 年利率/年复利次数
double baseNum = 1 + interestRate / compoundNumber;
// 指数 = 年复利次数 * 投资年限
double powerNum = compoundNumber * investmentPeriod;
double futureCapital = investment * Math.Pow(baseNum, powerNum);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:03