[英]Ways to Detect Digits Not Zero in an int?
我很想知道是否有任何簡單的方法可以檢測int
/ long
中的非零位數。 我想創建一個小程序,將輸入(標准數字)格式化為科學計數法。
我試圖找到任何可以幫助完成此操作的int
函數,但我並不是100%熟練使用流言,而且似乎沒有任何函數可以幫助您。
另外,我想找到一種方法將int
/ long
中的每個數字放入列表中,每個數字都是它自己的元素。 也許有一種方法可以將零與非零分開。
任何花哨的想法(和評論)將不勝感激,謝謝!
您可以簡單地將其轉換為字符串(使用InvariantCulture
),然后僅計算非零數字:
public int NonZeroDigits(int input)
{
return input.ToString(CultureInfo.InvariantCulture).Count(digit => digit >= '1' && digit <= '9');
}
計算數字中非零數字的數量
int NumOfNonZeroDigits(long num)
{
int result = 0;
while( num != 0)
{
if(num % 10 != 0)
{
result++;
}
num /= 10;
}
return result;
}
打印獨立數字:
int num = 43546;
int digitNum = (int) Math.Floor(Math.Log10(n) + 1);
for (int i=0; i <digitNum; i++)
{
int digit = (num / ((int) Math.Pow(10, i)) ) % 10;
Console.Writeline(digit);
}
// the third dight would be: (num / 100) % 10
首先,零? 整數的二進制表示中的零是什么? 當您將其轉換為十進制值並將其打印到屏幕上時?
如果您只需要科學記數法,我建議您查看一下MSDN文檔中的科學記數法。
例:
var t = 1234.5678d;
Console.WriteLine(t.ToString("E", CultureInfo.InvariantCulture));
// Will print something along the lines of 1.2345678E+004
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.