How to convert long to int in .net?
You can't store a 15 digit integer since the maximum value for an integer is 2,147,483,647.
What's wrong with a long
-Value?
You could use TryParse() to get the long
-Value from yout user input:
String Am = AmountTextBox.Text.ToString();
long l;
Int64.TryParse(Am, out l);
It will return false
if the text can't be converted to long
, so it's pretty safe to use.
Otherwise, converting a long
to int
is a easy as
int i = (int)yourLongValue;
if you're happy with discarding MSBs and taking LSBs.
You have a number stored as a string
, and you want to convert it to a numeric type.
You can't convert it to type int
(also known as Int32
), because as the other answers have mentioned, that type does not have sufficient range to store your intended value.
Instead, you need to convert the value to a long
(also known as Int64
), instead. The simplest and most painless way to do that is using the TryParse
method, which converts a string representation of a number to its 64-bit signed integer equivalent.
The advantage of using this method (instead of something like Parse
) is that it does not throw an exception if the conversion fails. Since exceptions are expensive, you should avoid throwing them unless absolutely necessary. Instead, you specify the string containing the number to convert as the first argument to the method, and an out
value to receive the converted number if the conversion succeeds. The return value is a Boolean, indicating whether or not the conversion was successful.
Sample code:
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);
}
}
Use Convert.ToInt32(). If the value is too big for an int then it will throw an OverflowException.
This method can take a whole range of values, including Int64 and Strings.