Подтвердить что ты не робот

Добавление двух .NET SqlDecimals увеличивает точность?

в .NET, когда я добавляю два SqlDecimals, например:

SqlDecimal s1 = new SqlDecimal(1);
SqlDecimal s2 = new SqlDecimal(1);
SqlDecimal s3 = s1 + s2;

то s3 имеет точность 2, тогда как s1 и s2 имеют точность 1.

Это кажется странным, тем более, что в документации указано, что возвращаемое значение оператора сложения - "Новая SqlDecimal структура, свойство Value которой содержит сумму". То есть согласно документации, добавление не должно изменять точность.

Я что-то упустил? Это предполагаемое поведение?

Приветствия,

Тильман

4b9b3361

Ответ 1

В этой статье (http://msdn.microsoft.com/en-us/library/ms190476.aspx) объясняется поведение SQL, и я предполагаю, что типы данных .NET Sql отражают это в их поведении.

Ответ 2

Я считаю это поведение нормальным.

Precision определяется как максимальное количество цифр, используемых для представления свойства Value.

Сумма двух чисел SqlDecimal, которые Precision равны 1, - это число, содержащееся в [-10,10]. В этом случае максимальный Precision требуется 2.