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

公式计算结果异常,求正确的C#代码实现方案

正确计算1 - (1 + 0.001)⁻⁴⁸的C#实现

嘿,咱们先理清你代码里的问题,再给出靠谱的解法:

你的代码错误分析

  • 代码1的问题:运算顺序完全搞反了!原公式是1 - (1.001的-48次方),但你写成了(1 - 1.001)的-48次方,也就是计算(-0.001)^-48,这等价于1/(-0.001)^48,结果自然是个超大的数,和预期完全不沾边。
  • 代码2的问题:不仅把底数和指数搞混了,而且负数的非整数次方在实数范围内是没有定义的,Math.Pow(-48, -0.001)会返回NaN(非数字),这也是合理的错误结果。

正确的C#代码实现

你只需要严格按照原公式的运算顺序来写:先计算1.001的-48次方,再用1减去这个结果。

public static void Main(string[] args) {
    // 完全遵循公式逻辑:1 - (1+0.001)^-48
    double preciseResult = 1 - Math.Pow(1 + 0.001, -48);
    // 格式化输出保留三位小数,和你预期的0.379一致
    Console.WriteLine(preciseResult.ToString("F3"));
}

运行这段代码,你会得到约0.379的结果(实际精确值是0.378979...,四舍五入后就是你想要的数值)。

内容的提问来源于stack exchange,提问作者Héctor M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:30:59