FloatingDecimal.doubleValue() returns a different double, but the same float if it's converted back to float.

e.g. f =125.32  cast to double 125.31999969482422
FloatingDecimal.doubleValue() to 125.32d