I have a string “246246.246” that I’d like to pass to the IConvertable interface, ToInt16, ToInt32, ToIn64. What is the best way to parse a string with decimal places to an integer?
This is a solution, but is there a better solution?
string value = "34690.42724";
Convert.ToInt64(Convert.ToDouble(value));
To do this discounting rounding you could do:
If you need to round you could replace
Math.FloorwithMath.Round.Edit: Since you mentioned in a comment that you’ll be rounding:
If you have to worry about localization/globalization then as @xls said you should apply a CultureInfo in the conversions.
Edit 2: Alternative method using a string function (not terribly elegant IMO – maybe it could be elegantized with a predicate function):