How could i convert data from string to long in C#?
I have data
String strValue[i] ="1100.25";
now i want it in
long l1;
How could i convert data from string to long in C#?
I have data
String strValue[i] ="1100.25";
now i want it in
long l1;
If you want to get the integer part of that number you must first convert it to a floating number then cast to long.
long l1 = (long)Convert.ToDouble("1100.25");
You can use Math
class to round up the number as you like, or just truncate...
You can also use long.TryParse
and long.Parse
.
long l1;
l1 = long.Parse("1100.25");
//or
long.TryParse("1100.25", out l1);
http://msdn.microsoft.com/en-us/library/system.convert.aspx
l1 = Convert.ToInt64(strValue)
Though the example you gave isn't an integer, so I'm not sure why you want it as a long.
long l1 = Convert.ToInt64(strValue);
That should do it.
You won't be able to convert it directly to long because of the decimal point i think you should convert it into decimal and then convert it into long something like this:
String strValue[i] = "1100.25";
long l1 = Convert.ToInt64(Convert.ToDecimal(strValue));
hope this helps!
long is internally represented as System.Int64 which is a 64-bit signed integer. The value you have taken "1100.25" is actually decimal and not integer hence it can not be converted to long.
You can use:
String strValue = "1100.25";
decimal lValue = Convert.ToDecimal(strValue);
to convert it to decimal value
You can also do using Int64.TryParse
Method. It will return '0' if their is any string value but did not generate an error.
Int64 l1;
Int64.TryParse(strValue, out l1);
You can create your own conversion function:
static long ToLong(string lNumber)
{
if (string.IsNullOrEmpty(lNumber))
throw new Exception("Not a number!");
char[] chars = lNumber.ToCharArray();
long result = 0;
bool isNegative = lNumber[0] == '-';
if (isNegative && lNumber.Length == 1)
throw new Exception("- Is not a number!");
for (int i = (isNegative ? 1:0); i < lNumber.Length; i++)
{
if (!Char.IsDigit(chars[i]))
{
if (chars[i] == '.' && i < lNumber.Length - 1 && Char.IsDigit(chars[i+1]))
{
var firstDigit = chars[i + 1] - 48;
return (isNegative ? -1L:1L) * (result + ((firstDigit < 5) ? 0L : 1L));
}
throw new InvalidCastException($" {lNumber} is not a valid number!");
}
result = result * 10 + ((long)chars[i] - 48L);
}
return (isNegative ? -1L:1L) * result;
}
It can be improved further: