2010-04-06 2 views
9

Мне нужно иметь возможность хранить числа, подобные 3,5 в моей таблице. Поэтому я использовал поле десятичного типа. Но если я вхожу в 3.5, округляю его до 4. Неужели я глуп или не десятичная точка десятичной точки?Тип данных десятичных данных MS SQL Server округляется до

+2

Можете ли вы опубликовать полное определение десятичного столбца (т. Е. Масштаб и точность, которые вы использовали), например. DECIMAL (10, 2) - 10 = точность, 2 = шкала. Кроме того, как вы вводите номер - в пользовательский интерфейс? В SQL-заявлении? Не могли бы вы опубликовать это тоже? – AdaTheDev

+0

Почему вы не используете [FLOAT] (http://msdn.microsoft.com/en-us/library/ms173773.aspx), и если вам нужно округлять всегда числа до 0.0 или 0.5, возьмите [посмотрите эту тему] (http://stackoverflow.com/questions/752655/round-in-ms-sql-on-0-05-or-0-00) – adopilot

+0

yup, который сработал, я просто, хотя FLOAT был для массивных чисел. Думает, что мне нужно снова задуматься над типом данных. Спасибо! – iamjonesy

ответ

14

Вам необходимо объявить его как decimal(18,3), чтобы указать количество цифр после точки.

+0

Да, он был объявлен как десятичный (18,3). Не знаю, почему я округлил его. – iamjonesy

+7

Как вы поместили данные? Возможно, вы используете хранимую процедуру, поскольку параметр также должен иметь тип decimal (18,3), а не только десятичный. – st78

Смежные вопросы