0

私は現在、次のようにループを使用して一連の数値を分析しています:-

using (var cmd = new DBCommand(dbConnection))
    for (double i = 10; i < 100; i++)    
    {
        Do Stuff
    }

これで、これは期待どおりに機能します。iの値を00から開始するように拡張するように求められました。これは、次のようにループすることを意味します:-00、01、02、03、04 .....これは、現在0を分析しているときに問題が発生する場所です。 、1、2、3.....先頭の0を削除します。

ループに先行0を含めるように強制するにはどうすればよいですか?

4

5 に答える 5

3

数値には先頭のゼロがありません。なぜ必要なのですか? 数値を表す文字列をフォーマットしたいとします。"D2"で使用できますToString

for(int i=0; i < 100; i++)
{
    Console.WriteLine(i.ToString("D2"));
} 

デモ

10 進数 ("D") 書式指定子 "D" (または 10 進数) 書式指定子は、数値を 10 進数 (0 ~ 9) の文字列に変換します。数値が負の場合は、先頭にマイナス記号が付きます。この形式は、整数型でのみサポートされています。

于 2013-02-24T20:39:16.080 に答える
1

整数や浮動小数点数などの数値には、先行ゼロはありません。本当に先行ゼロが必要な場合は、文字列データ型を使用する必要があります。

于 2013-02-24T20:30:58.910 に答える
1

ToStringメソッドを呼び出すときに番号をフォーマットするだけです:

value.ToString("D2")

D22 桁の Decimal フォーマット指定子です。詳細については、MSDN Standard Numeric Format Stringsを確認してください

于 2013-02-24T20:36:52.663 に答える
0

数値は内部でバイナリ形式で格納されます。つまり、数値5はメモリ内に存在00000000000000000000000000000101します(ビッグ/リトルエンディアンの問題は考慮されていません)。5実行時に存在しないC#コードで使用される単なる文字です。

数値の特別なフォーマットが必要な場合は、それを文字列に変換します。

int i = 5;
string s = i.ToString("00"); // ==> "05"

また、ループ変数として整数値を使用します。とにかく整数が必要です。4.999999999999浮動小数点数は、計算の結果として正確に計算されたときではなく、のような値になる傾向があり5、ループループが多すぎる可能性があります。

for (int i = 10; i < 100; i++) {
   string s = i.ToString("00");
   // Do stuff with s
}
于 2013-02-24T20:42:44.160 に答える
0

0int に先頭を追加することはできないため、文字列を使用する必要があります。

var stringNumbers = Enumerable.Range(0, 100).Select(i => i.ToString("D2"));
foreach (var stringNumber in stringNumbers)
{
    // Do Stuff
}
于 2013-02-24T20:43:44.120 に答える