Math.log() 用 c# 给了我错误的值

Miç*_*Miç 2 c#

Math.log在 C# 中使用时遇到问题,它给了我错误的值。

在我的代码中:

Math.log(0.137931034482758)  
Run Code Online (Sandbox Code Playgroud)

返回: -1.98100146886658

但是用计算器

log(0.137931034482758)  
Run Code Online (Sandbox Code Playgroud)

-0.86033800657099

这是为什么?

phu*_*uzi 6

log(n) 和 ln(n) 之间似乎有点混淆,其中 log(n) 实际上是 log 10 (n),而 ln(n) 是自然对数,相当于 log e (n) 和

所以,数学上

log(0.137931034482758) = -0.86033800657099565123053753815789
Run Code Online (Sandbox Code Playgroud)

ln(0.137931034482758) = -1.9810014688665879083488077894557
Run Code Online (Sandbox Code Playgroud)

看起来 Math.Log 使用自然对数。

如果您想要 log 10 (n),则使用Math.Log10(n)Math.Log(n, 10)代替。

  • 请记住, `Math.Log10(1000) == Math.Log(1000, 10)` 是 [`False`](https://repl.it/@baliibrahim/LogDifference) (2认同)