Which library are you using? I have not heard of "Mudbus".
Where your code says "Mb.R[0] = (vin);" what is the datatype of Mb.R? If it is an integer then it will crop the float thereby losing the decimal point numbers.
Edit:
Found the library and the google code page states, "The register and coil data is held as Mb.R[0-125] signed int and....".
Confirms my suspicion. You won't get a float to display without modifying the library.