powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Округление в запросе
3 сообщений из 3, страница 1 из 1
Округление в запросе
    #39950608
SHKoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @n1 numeric(24,10) = 0.4288321167883200
declare @n2 numeric(24,10) = 116
declare @n3 numeric(24,10) = 1

select 
@n1 * @n2 * @n3  as f1, 
@n1 * @n2  as f2, 
0.4288321167883200*116*1 as f0



f1 = 49.744526
f2 = 49.744525549
f0 = 49.7445255474451200

И вот какого художника? спрашивается...
почему при умножении переменных значение округляется? А при умножении значений не округляется

И как сделать, чтобы не округлялось?

Спасибо

Код: sql
1.
2.
Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)   Mar 18 2018 09:11:49  
 Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor) 
...
Рейтинг: 0 / 0
Округление в запросе
    #39950616
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что точность numeric-типов при операциях рассчитывается по определенным формулам, приведенным в справке .
...
Рейтинг: 0 / 0
Округление в запросе
    #39950630
SHKoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @n1 numeric(30,20) = 0.4288321167883200
declare @n2 numeric(30,20) = 116
declare @n3 numeric(30,20) = 1

select 
@n1 * @n2 * @n3  as f1, 
@n1 * @n2  as f2, 
cast(@n1 * @n2 as numeric(30,20)) * @n3  as f3, 
0.4288321167883200*116*1 as f



Ну хотя бы так...
Но как-то неожиданно очень
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Округление в запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]