Alex Rivera | Logout

C# float to decimal conversion

Asked 2010-04-07T18:12:13.370
26

Any smart way to convert a float like this:

float f = 711989.98f;

into a decimal (or double) without losing precision?

I've tried:

decimal d = (decimal)f;
decimal d1 = (decimal)(Math.Round(f,2));
decimal d2 = Convert.ToDecimal(f);
Edit
Report

1 Answer

19

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.

answered 2010-04-07T18:22:41.363

Your Answer