質問

5ゼロ( "00000")を含む文字列をintに変換して増やすことができます。 convert.toint32()を使用して文字列を整数に変換するたびに、値は0になります。 整数が一度変換された長さの長さに留まるようにするにはどうすればよいですか。

値が0または1ではなくデータベース内のその数の数字で値が表示されるように、値を "00000"から "00001"までインクリメントできるようにしたいです。

投票の質問を解除しようとしている場合は、あなたがそれをした理由についてのフィードバックを残すことができます...

役に立ちましたか?

解決

整数は整数です。これ以上なし。

だからあなたが価値がゼロになっているintは、 "Length"メタデータなどを追加する方法はありません。

あなたが実際に欲しいもの、that - いくつかの時点で、再びstringがあるでしょう。そのstringはあなたの番号を表すが5文字と先行ゼロを備えています。

あなたはそれを使ってそれを達成することができます:

string s = i.ToString("00000")
.

編集

あなたはあなたがあなたのDBのような数字のように見えたいと言います。 あなた自身に尋ねなさい:

それは本当にDBのようなものであるか、データベースからそれらを読むとすぐに数をフォーマットするのに十分であるか?

それに応じて、DBへの書き込みまたは読み出し時の(上に示すように)フォーマットします。もちろん、以前のケースにはより多くの記憶スペースが必要であり、算術演算を実行するために実際にSQLまたは類似のものを使用することはできません!

他のヒント

整数の長さはありませんが、純粋に数値です。長さを維持したい場合は、長さに関する情報を他の場所に関する情報を保存する必要があります。

長さを保持するオブジェクトに値を折り返すことができます。例:

public class FormattedInt {

  private int _value, _length;

  public FormattedInt(string source) {
    _length = source.Length;
    _value = Int32.Parse(source);
  }

  public void Increase() {
    _value++;
  }

  public override string ToString() {
    return _value.ToString(new String('0', _length));
  }

}
.

使用:

FormattedInt i = new FormattedInt("0004");
i.Increase();
string s = i.ToString(); // 0005
.

Olydisが上記のように、intは単なる数字です。表示形式を指定しません。データベース内のゼロで埋め込まれた保存をお勧めしません。それはintで、それをintとして保存します。

表示目的のために、アプリでは報告書、それからゼロを埋めます。

string s = i.ToString("00000");
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top