Pregunta

Quiero convertir una cadena de caracteres que contiene 5 ceros ("00000") en un Int por lo que puede ser incrementado.Siempre que puedo convertir la cadena a un entero usando Convertir.ToInt32(), el valor se convierte en 0.Cómo puedo asegurarme de que el entero se mantiene en una longitud fija de una vez convertidos?

Quiero ser capaz de incrementar el valor de "00000" a "00001", y así sucesivamente, de manera que el valor que aparece con ese número de dígitos en una base de datos en lugar de 0 o 1.

Si usted va a voto de la pregunta, lo menos que podría hacer es dejar comentarios en por qué lo hizo...

¿Fue útil?

Solución

Un entero es un número entero.Nada más.

Por lo que el int usted tiene tiene valor cero, no hay manera de añadir ningún "longitud" metadatos o similar.

Supongo que lo que realmente se quiere es, que - en algún momento - habrá un string de nuevo.Desea que string para representar su número, pero con 5 personajes y los ceros a la izquierda.

Usted puede lograr que el uso de:

string s = i.ToString("00000")

EDITAR

Usted dice que usted desea que los números aparezcan como que en tu DB.Pregúntate a ti mismo:

¿Realmente necesitamos ser como que en la DB o es suficiente para dar formato a los números tan pronto a medida que se lee de la base de datos?

Dependiendo de eso, el formato (como se muestra arriba), ya sea a la hora de escribir o leer de la base de datos.Por supuesto, el primer caso se requieren más espacio de almacenamiento y realmente no se puede utilizar SQL o similares para realizar operaciones aritméticas!

Otros consejos

Un entero no tiene una longitud, es un valor puramente numérico.Si desea mantener la longitud, debe almacenar la información sobre la longitud en otro lugar.

Puede envolver el valor en un objeto que mantiene la longitud en una propiedad.Ejemplo:

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));
  }

}

Uso:

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

Como olydis dice arriba, un int es sólo un número.No especifica el el formato de la pantalla.Yo no recomiendo guardarlo collar con ceros en una base de datos.Es un int, tienda como un int.

Para los fines de la presentación, en la aplicación, un informe, lo que, a continuación, alinear los ceros.

string s = i.ToString("00000");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top