Ответ 1
В этой статье (http://msdn.microsoft.com/en-us/library/ms190476.aspx) объясняется поведение SQL, и я предполагаю, что типы данных .NET Sql отражают это в их поведении.
в .NET, когда я добавляю два SqlDecimals, например:
SqlDecimal s1 = new SqlDecimal(1);
SqlDecimal s2 = new SqlDecimal(1);
SqlDecimal s3 = s1 + s2;
то s3 имеет точность 2, тогда как s1 и s2 имеют точность 1.
Это кажется странным, тем более, что в документации указано, что возвращаемое значение оператора сложения - "Новая SqlDecimal структура, свойство Value которой содержит сумму". То есть согласно документации, добавление не должно изменять точность.
Я что-то упустил? Это предполагаемое поведение?
Приветствия,
Тильман
В этой статье (http://msdn.microsoft.com/en-us/library/ms190476.aspx) объясняется поведение SQL, и я предполагаю, что типы данных .NET Sql отражают это в их поведении.
Я считаю это поведение нормальным.
Precision
определяется как максимальное количество цифр, используемых для представления свойства Value
.
Сумма двух чисел SqlDecimal
, которые Precision
равны 1
, - это число, содержащееся в [-10,10]. В этом случае максимальный Precision
требуется 2
.