I don't think it is an issue with the floating point data type but rather the internal tiling in an ERDAS Imagine file. The blocking is discussed in this document:
http://home.gdal.org/proj...magine/iau_docu0.pdf
ENVI's readers take into account the blocking which is why it looks 'normal' when displayed. You might instead consider letting ENVI do this work for you. Programmatically read in the file via ENVI_OPEN_DATA_FILE and then read the data into a variable for processing in IDL.