C#log base 10并舍入到最接近10的幂?

时间:2010-05-31 00:13:36

标签: c#

如果我有一个介于100和1000之间的数字我想得到值3因为10 ^ 3 = 1000.同样,如果我有一个10到100之间的数字我想得到值2,因为10 ^ 2是100。

如果你想知道,它与计算概率有关,我总是需要除以10 ^值,以保持0到1之间的概率。例如,如果我计算9256,我需要除以10 ^ 4,这样我的概率为0.92

我不确定如何进行整理以及如何进行基础10,有人可以帮忙吗?

3 个答案:

答案 0 :(得分:9)

Math.Ceiling(Math.Log10(x))

答案 1 :(得分:3)

为什么你不能只记录数字,然后将其四舍五入? Log 9256会给你3.966,将它四舍五入到4(如果你想要的话加一个并整合它),然后将10除以4的幂...你实际上自己回答了这个问题。

答案 2 :(得分:1)

使用对数将起作用,但您还需要考虑其余的计算。除以10的幂可能对你来说更简单:

double Scale(double x)
{
    if(x <= 0} { return 0; }

    while(x > 1.0)
    {
        x /= 10.0;
    }

    return x;
}