Я расширяю аналогичный вопрос под названием Является ли тип данных SQL Server «ДЕНЬГИ» десятичным с плавающей запятой или двоичным с плавающей запятой?
Принятый ответ сообщил нам, что тип данных «деньги» является типом данных с фиксированной точкой, а не с плавающей точкой, но не сказал, был ли он двоичным с фиксированной точкой или десятичной с фиксированной точкой.
Я предполагаю, что это десятичная фиксированная точка, но я нигде не могу найти этому подтверждения.
Документация a> сообщает нам диапазон и размер, но не базовую реализацию.
binary-fixed-point
. Пожалуйста, укажите, что это должно быть. Двоичный - это единица с основанием, а не десять. Несмотря на то, что это тот же номер. - person Nick.McDermaid   schedule 11.02.2020BIGINT
с вставленной десятичной точкой, потому что в основном это то, что есть (аSMALLMONEY
- этоINT
с вставленной десятичной точкой). Поскольку коэффициент масштабирования представляет собой степень 10, он квалифицируется как десятичный тип с фиксированной точкой. Как говорится в связанных ответах,MONEY
следует использовать с осторожностью именно из-за его фиксированной точности (DECIMAL
вычисления будут варьировать свою точность по мере необходимости). - person Jeroen Mostert   schedule 11.02.2020decimal
s. Но с учетом ограничений на значения это может показаться другим внутренним форматом. Чтобы ответить на этот вопрос, вам, возможно, придется погрузиться во внутреннее устройство SQL Server. - person Gordon Linoff   schedule 11.02.2020