Adrian4B Adrian4B - 1 year ago 152
C# Question

C# float to decimal conversion

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);

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download