It's bad because the decimal dot disappears so that the result can be taken for an integer. Otherwise I don't have any issue with the "e" format, and my fix just ensures that there's a dot in it:
(string) 1.0;
(1) Result: "1.0"
I think however it'd be nice to tune down the number of displayed digits a bit (MAX_FLOAT_PREC_LEN) so that the binary/decimal conversion errors get rounded off.