相关疑难解决方法(0)

BigDecimal的对数

如何计算BigDecimal的对数?有谁知道我可以使用的任何算法?

到目前为止,我的谷歌搜索已经提出了(无用的)只需转换为双精度并使用Math.log的想法.

我将提供所需答案的精确度.

编辑:任何基地都会这样做.如果它在基数x中更容易,我会这样做.

java logarithm bigdecimal

41
推荐指数
4
解决办法
3万
查看次数

获取无符号长整数c#中的位数

我正在尝试确定ac#ulong数字中的位数,我试图使用一些数学逻辑而不是使用ToString().长度.我没有对这两种方法进行基准测试,但已经看到有关使用System.Math.Floor(System.Math.Log10(number))+ 1来确定位数的其他帖子.似乎工作正常,直到我从999999999999997过渡到999999999999998,此时,我开始得到一个不正确的计数.

有没有人遇到过这个问题?

我看过类似帖子的Java重点@ 为什么log(1000)/ log(10)与log10(1000)不一样?还有一个帖子@ 如何获取一个int数字的单独数字?这表明我如何使用%运算符实现相同的功能,但代码更多

这是我用来模拟这个的代码

Action<ulong> displayInfo = number => 
 Console.WriteLine("{0,-20} {1,-20} {2,-20} {3,-20} {4,-20}", 
  number, 
  number.ToString().Length, 
  System.Math.Log10(number), 
  System.Math.Floor(System.Math.Log10(number)),
  System.Math.Floor(System.Math.Log10(number)) + 1);

Array.ForEach(new ulong[] {
 9U,
 99U,
 999U,
 9999U,
 99999U,
 999999U,
 9999999U,
 99999999U,
 999999999U,
 9999999999U,
 99999999999U,
 999999999999U,
 9999999999999U,
 99999999999999U,
 999999999999999U,
 9999999999999999U,
 99999999999999999U,
 999999999999999999U,
 9999999999999999999U}, displayInfo);

Array.ForEach(new ulong[] {
 1U,
 19U,
 199U,
 1999U,
 19999U,
 199999U,
 1999999U,
 19999999U,
 199999999U,
 1999999999U,
 19999999999U,
 199999999999U,
 1999999999999U,
 19999999999999U,
 199999999999999U,
 1999999999999999U,
 19999999999999999U,
 199999999999999999U,
 1999999999999999999U
}, displayInfo);
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# algorithm numbers

11
推荐指数
2
解决办法
4408
查看次数

Math.log() 用 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

这是为什么?

c#

2
推荐指数
1
解决办法
1374
查看次数

标签 统计

c# ×2

algorithm ×1

bigdecimal ×1

java ×1

logarithm ×1

numbers ×1