If I try this:
SELECT(ROUND(CAST(10.4 AS numeric(12,2)), 2)
I get:
10.40
If you use numeric or decimal types, you will get as many zeros as you set in the precision part of the data type.
In your example, you specified 2 digits of precision, so you will always have up to two trailing zeros. Perhaps you need a different data type, like float .
source share