Ответ 1
Math.Log(num)
возвращает журнал базы e
Math.Log(num, base)
- это, вероятно, то, что вы ищете.
Имеем следующий код
(float)Math.Log(3.83031869)
Полученный результат:
1.342948
Но когда я вычислил Log2 для того же числа, используя много онлайн-калькуляторов, я получил
1.93746
Может ли какое-либо объяснение этой проблемы, пожалуйста? Заранее спасибо.
Math.Log(num)
возвращает журнал базы e
Math.Log(num, base)
- это, вероятно, то, что вы ищете.
Как видно из MSDN http://msdn.microsoft.com/en-us/library/x80ywz41.aspx
Функция Math.Log
вычисляет журнал с базой e
.
Смотрите http://msdn.microsoft.com/en-us/library/hd50b6h5.aspx за то, что вам нужно.
При вызове метода журнала только с одним аргументом вы получаете базу данных e. Если вы предоставите второй аргумент 2.0, вы получите ожидаемый результат:
//Testing in LinqPad
void Main()
{
Math.Log(3.83031869).Dump();
Math.Log(3.83031869, 2.0).Dump();
}
Результаты
1.34294800860817
1.93746443219072