Hadi Basiri Ответов: 2

Почему оператор SELECT возвращает 12 в SQL server ?


DECLARE @retTable TABLE
    (
      ArtilceID INT ,
      Quantity DECIMAL
    )
INSERT  INTO @retTable
        ( ArtilceID, Quantity )
VALUES  ( 1, 11.5 )
SELECT  *
FROM    @retTable


Привет.
Спасибо за
Почему оператор SELECT возвращает 12 в Sql server ?

спасибо

Что я уже пробовал:

Мне нужно знать причину этого.

Michael_Davies

Выглядит как округление, укажите десятичные знаки;

Объявить таблицу @retTable
(
ArtilceID INT ,
Десятичное число(10,2)
)

2 Ответов

Рейтинг:
0

Dave Kreskowiak

Попробуйте прочитать документацию по ДЕСЯТИЧНЫЙ[^] в следующий раз. Вы не указали точность и масштаб, поэтому по умолчанию используется точность 18 цифр и шкала 0. Масштаб - это количество цифр справа от десятичной точки, поэтому для значения 0, которое делает десятичную точку хранящей только целые числа.


Рейтинг:
0

mansi chaudhari

Попробуйте это: это даст результат, как вы хотите быть:

DECLARE @retTable TABLE
    (
      ArtilceID INT ,
      Quantity DECIMAL(4,1)
    )
INSERT  INTO @retTable
        ( ArtilceID, Quantity )
VALUES  ( 1, 11.5 )
SELECT  *
FROM    @retTable


Выход будет :
ArtilceID	Quantity
  1	          11.5