Я не знаю, почему этот код выводит 0.34 (я ожидал 0.335). Курсор TSQL автоматически округляет переменные типа денег? Пожалуйста, помогите мне, кто знает об этом.TSQL Cursor автоматически округляет переменные типа денег
DECLARE @Rate MONEY;
DECLARE csrRate
CURSOR FOR
SELECT 0.335
OPEN csrRate;
FETCH NEXT FROM
csrRate
INTO
@Rate
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @Rate
FETCH NEXT FROM csrRate INTO @Rate
END
CLOSE csrRate
DEALLOCATE csrRate
хорошо традиционно, деньги имеют 2 цифры после десятичной точки! Также: не используйте тип данных MONEY! –
Попробуйте использовать 'DECLARE cSrRate CURSOR для SELECT CAST ('0.335' AS MONEY);'? –
@MitchWheat Тип данных 'MONEY' в SQL Server хранит 4 цифры. В SSMS он также * показывает * до 4 цифр. –