Небольшая особенность, с которой приходится иногда сталкиваться в MS SQL - разный подход к округлению функцией round для типов данных money и float. Проявляется это в том случае, когда (N+1)-й знак = 5, а последующие знаки равны нулю (подразумевается, что округление идет до N знаков после запятой).
Так вот, money - округляется по правилам математического округления, в большую сторону, а вот float - в меньшую!
например, результатом выполнения select round (cast (11.385 as float), 2,0) будет 11.38
В то время, как select round (cast (11.385 as money), 2,0) выдаст ожидаемые 11.39
Так вот, money - округляется по правилам математического округления, в большую сторону, а вот float - в меньшую!
например, результатом выполнения select round (cast (11.385 as float), 2,0) будет 11.38
В то время, как select round (cast (11.385 as money), 2,0) выдаст ожидаемые 11.39