如果我有一个介于100和1000之间的数字,我希望得到值3,因为10^3 = 1000.同样,如果我有一个介于10和100之间的数字,我希望得到值2,因为10^2是100.C#登录基数10并四舍五入到最接近的10?
Incase你想知道,它与计算概率有关,我总是需要通过10 ^值除以保持0和1之间的概率。例如,如果我计算9256,我需要除以10^4,这样我得到0.92的概率
我不知道如何做四舍五入,如何做基地10,请问有人可以帮忙吗?
如果我有一个介于100和1000之间的数字,我希望得到值3,因为10^3 = 1000.同样,如果我有一个介于10和100之间的数字,我希望得到值2,因为10^2是100.C#登录基数10并四舍五入到最接近的10?
Incase你想知道,它与计算概率有关,我总是需要通过10 ^值除以保持0和1之间的概率。例如,如果我计算9256,我需要除以10^4,这样我得到0.92的概率
我不知道如何做四舍五入,如何做基地10,请问有人可以帮忙吗?
为什么你不能把数字的日志,然后把它整理?日志9256会给你3.966,四舍五入(如果你想添加一个并将其整除),然后除以10得到4的幂......你实际上自己回答了这个问题。
Math.Ceiling(Math.Log10(x))
使用对数可以工作,但是您还需要考虑其余的计算。划分出10个权力可能对您简单:
double Scale(double x)
{
if(x <= 0} { return 0; }
while(x > 1.0)
{
x /= 10.0;
}
return x;
}
是的...这个解决方案可能更有效率。 – mpen 2010-05-31 00:35:32
[步骤的数学函数]的可能重复(http://stackoverflow.com/questions/2907949/step-math-function) – 2010-05-31 01:06:06
应该在10到10(因此有1.0的概率)或100(概率为0.1)? – 2010-05-31 01:09:32