Change double to use IEEE754 and add a float type