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

C#中Math.Log返回值与计算器结果不符的原因咨询

为什么C#的Math.Log结果和计算器不一致?

你碰到的这个问题其实是个很常见的「底数误解」问题,我来给你拆解清楚:

  • C#里的Math.Log(double)方法,默认计算的是自然对数(底数为e,也就是数学里的ln)。你代码里的Math.Log(0.137931034482758)得到的-1.981,正是这个数的自然对数值,是完全正确的。
  • 而我们日常用的计算器,默认的「log」按钮通常指的是常用对数(底数为10),也就是log₁₀,所以你用计算器得到的-0.860是这个数的常用对数值,同样是正确的。

想要在C#里得到和计算器一致的结果,有两种简单的解决办法:

  1. 直接使用专门的常用对数方法:Math.Log10(0.137931034482758),这个方法会直接返回底数为10的对数值,结果就是你期望的-0.86033800657099左右。
  2. 用对数换底公式手动计算:Math.Log(0.137931034482758) / Math.Log(10),因为log₁₀(x) = ln(x)/ln(10),这样算出来的结果和上面的方法完全一致。

另外补充个小知识点:如果之后需要计算其他底数的对数(比如底数2),也可以用换底公式,或者C# 4.0及以上版本里的Math.Log2(double)方法来直接计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:23:14