2016-11-25 33 views
-4

我在Visual Studio 2015中創建了一個winform程序來計算Pi,但我在嘗試獲取邏輯數字的數量時遇到了問題。獲取十進制變量的位數

我需要讓這個:

public decimal pi = 3.15195647857832565; //random decimals 
txtDigits.Text = //number of digits in pi variable and get rid of trailing decimal points 
+0

多少個數字,你從期望,爲前1/3? –

回答

-2

如果你需要得到邏輯的位數,IE剔除尾隨零,我建議你在這裏使用的接受的方法:

Find number of decimal places in decimal value regardless of culture

decimal argument = 123.456m; 
int digitCount = BitConverter.GetBytes(decimal.GetBits(argument)[3])[2]; 

我用這種方法適用於多個項目,並且它的工作非常好。請注意,這是爲了找到尾隨小數點的數量(我認爲這就是你所追求的,但從你的問題來看並不清楚)。

+0

接縫工作正常,謝謝 – Pepe

+0

@ user87073'十進制參數= 1m/3;'返回28.爲什麼不是29?或爲什麼不是無限的?改善你的問題....並回答我發表的評論〜48分鐘前... –

+0

@ L.B好奇知道爲什麼這是downvoted?似乎很奇怪,因爲OP沒有明確說明他究竟是什麼,所以試圖用高質量的參考來回答這個問題。我在這裏表示,我*假設*他正在尋找小數點後的數字。我在這裏提供的方法確實如此。或者,也許你正在度過一個糟糕的一天? –

-2

這將返回所有數字的計數:

int i= 0; 
foreach (char c in pi.ToString()) 
{ 
    if (Char.IsDigit(c)) 
     { 
      i++; 
     } 
}