我在C#中使用Math.log
时遇到问题,它给了我错误的值。
在我的代码中:
Math.log(0.137931034482758)
返回:-1.98100146886658
但是用计算器
log(0.137931034482758)
给出-0.86033800657099
为什么?
答案 0 :(得分:3)
log(n)和ln(n)之间似乎有点混淆,其中log(n)实际上是log 10 (n),而ln(n)是自然对数,是相当于log e (n)和
所以,数学上
log(0.137931034482758) = -0.86033800657099565123053753815789
但
ln(0.137931034482758) = -1.9810014688665879083488077894557
看起来Math.Log使用自然对数。
如果您想要日志 10 (n),请改用Math.Log10(n)
或Math.Log(n, 10)
。
答案 1 :(得分:0)
作为Daisy sais:
基础log(-1.98100146886658)
的 e
为-1.98100146886658
log(-1.98100146886658)
的 10
为-0.86033800657099
Math.log使用每个默认e作为基础https://msdn.microsoft.com/de-de/library/x80ywz41(v=vs.110).aspx
你的计算器显然使用了使用基础10。