[英]Math.log() is giving me wrong values with c#
我在C#中使用Math.log
时遇到问题,这给了我错误的值。
在我的代码中:
Math.log(0.137931034482758)
返回: -1.98100146886658
但是用计算器
log(0.137931034482758)
给出-0.86033800657099
这是为什么?
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)
。
正如黛西所说:
基于e
log(-1.98100146886658)
为-1.98100146886658
以10
为-0.86033800657099
log(-1.98100146886658)
是-0.86033800657099
Math.log默认使用e作为基础https://msdn.microsoft.com/de-de/library/x80ywz41(v=vs.110).aspx
而且您的计算器显然使用使用基准10。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.