Преобразовать SqlDecimal в Decimal - PullRequest
0 голосов
/ 05 июля 2011

Проблема в том, что тип данных SqlDecimal упаковывает больше битов, чем тип данных Decimal, который является родным для CLR.Так как же сделать одну карту между двумя наиболее практичным способом?Это не очень хорошо работает:

SqlDecimal x = ...
decimal z = x.value; // can overflow

Чтобы пропустить больше чисел, можно убрать конечные нули.Но если вы согласитесь с потерей точности, которую дает преобразование, можно ожидать, что будет функция, которая будет выполнять преобразование с потерями.

Есть ли?Или что было бы лучше всего здесь?

Я уже создал функцию, которая обрезает и удаляет конечные нули для преобразования, но я бы предпочел использовать стандартную функцию .NET BCL, если одна такая существует.

1 Ответ

1 голос
/ 05 июля 2011

Используйте SqlDecimal.Round с точностью, соответствующей типу .NET decimal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...