Anyway the problem with your latest code is that the variable "y" is an integer so it cuts off the decimals of the float. Your compiler should at least give a warning when you compile that kind of code.. actually the code should not compile at all.
I think the "UART1_Read_Text(output, "m", 255); " waits until it receives the data, so the "data ready" polling is useless (also in my early version of the code).