Этот ответ специфичен c для вашего конкретного c вопроса - деление на 2. Если вы хотите более общее решение, задайте новый вопрос.
Деление на 2 такое же, как умножение на 5 и деление на 10.
Мы не можем умножить ваше значение на 5, но мы можем сделать следующее:
- Целочисленное деление на 10.
- Умножить на 5.
- Добавьте немного больше, чтобы объяснить пропажу ди git.
Но. , , вы думаете . , , как мы можем разделить на 10? Что ж, вы можете сделать это с помощью string операций: просто обрежьте последний di git:
declare @var1 decimal(38,0) = 85070591730234615865699536669866196992;
select (convert(decimal(38,0), left(convert(varchar(38), @var1), 37)) * 5 +
convert(decimal(38, 0), (@var1 % 10) / 2)
) as half_a_big_value
Здесь - это db <> скрипка.