Any smart way to convert a float like this:
float f = 711989.98f;
into a decimal (or double) without loosing precision?
I've tried:
decimal d = (decimal)f;
decimal d1 = (decimal)(Math.Round(f,2));
decimal d2 = Convert.ToDecimal(f);
Any smart way to convert a float like this:
float f = 711989.98f;
into a decimal (or double) without loosing precision?
I've tried:
decimal d = (decimal)f;
decimal d1 = (decimal)(Math.Round(f,2));
decimal d2 = Convert.ToDecimal(f);
have you tried?
decimal.TryParse()
http://forums.asp.net/t/1161880.aspx
There are no implicit conversions between float/double and decimal. Implicit numeric conversions are always guaranteed to be without loss of precision or magnitude and will not cause an exception.
It's too late, the 8th digit was lost in the compiler. The float type can store only 7 significant digits. You'll have to rewrite the code, assigning to double or decimal will of course solve the problem.
You lost precision the moment you've written 711989.98f.
711989.98 is decimal. With f in the end you are asking the compiler to convert it to float. This conversion cannot be done without loosing precision.
What you probably want is decimal d = 711989.98. This will not loose precision