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

```