Why is the output of this query being returned like this?
Syntax for CONVERT:

 CONVERT ( data_type [ ( length ) ] , expression [ , style ] )


[style] for float data type :

0 (default)   A maximum of 6 digits. Use in scientific notation, when appropriate.
1 Always 8 digits. Always use in scientific notation.
2 Always 16 digits. Always use in scientific notation.
126, 128, 129 Included for legacy reasons and might be deprecated in a future release.


You can use below command to get expected result :

CONVERT(nvarchar(max),CAST(0 as float(53)),0)