2010-05-31 108 views
1

如果我有一個介於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,請問有人可以幫忙嗎?

+0

[步驟的數學函數]的可能重複(http://stackoverflow.com/questions/2907949/step-math-function) – 2010-05-31 01:06:06

+0

應該在10到10(因此有1.0的概率)或100(概率爲0.1)? – 2010-05-31 01:09:32

回答

3

爲什麼你不能把數字的日誌,然後把它整理?日誌9256會給你3.966,四捨五入(如果你想添加一個並將其整除),然後除以10得到4的冪......你實際上自己回答了這個問題。

9
Math.Ceiling(Math.Log10(x)) 
1

使用對數可以工作,但是您還需要考慮其餘的計算。劃分出10個權力可能對您簡單:

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

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

    return x; 
} 
+0

是的...這個解決方案可能更有效率。 – mpen 2010-05-31 00:35:32