簡體   English   中英

檢測int中數字不為零的方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM