Tiene un número almacenado como string
y desea convertirlo a un tipo numérico.
No se puede convertir al tipo int
(también conocido como Int32
), porque como las otras respuestas han mencionado, ese tipo no tiene suficiente rango para almacenar el valor deseado.
En su lugar, debe convertir el valor a long
(también conocido como Int64
). La forma más sencilla e indolora de hacerlo es utilizando el TryParse
method, que convierte una representación de cadena de un número en su entero con signo de 64 bits.
La ventaja de utilizar este método (en lugar de algo como Parse
) es que no genera una excepción si la conversión falla. Como las excepciones son caras, debe evitar tirarlas a menos que sea absolutamente necesario. En su lugar, especifique la cadena que contiene el número para convertir como primer argumento al método, y un valor out
para recibir el número convertido si la conversión tiene éxito. El valor de retorno es un booleano, que indica si la conversión fue exitosa o no.
Código de ejemplo:
private void ConvertNumber(string value)
{
Int64 number; // receives the converted numeric value, if conversion succeeds
bool result = Int64.TryParse(value, out number);
if (result)
{
// The return value was True, so the conversion was successful
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
// Make sure the string object is not null, for display purposes
if (value == null)
{
value = String.Empty;
}
// The return value was False, so the conversion failed
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
Un 'Int32' no tiene solamente 10 dígitos (' 2,147,483,647', sin signo '4,294,967,295'), ¿dónde desea almacenar los otros 5? – Bobby
Uso XML como base de datos en mi aplicación. Estoy utilizando el nodo para almacenar el valor completo de 15 dígitos. Entonces, ¿debo encubrir mi valor String en el largo? Por favor guíame. Soy nuevo en este tipo de conversiones –
Entonces, ¿voy a adivinar que realmente quiere convertir un 'String' que contiene un número en' long'? –