Проблема в том, что тип данных SqlDecimal упаковывает больше битов, чем тип данных Decimal, который является родным для CLR.Так как же сделать одну карту между двумя наиболее практичным способом?Это не очень хорошо работает:
SqlDecimal x = ...
decimal z = x.value; // can overflow
Чтобы пропустить больше чисел, можно убрать конечные нули.Но если вы согласитесь с потерей точности, которую дает преобразование, можно ожидать, что будет функция, которая будет выполнять преобразование с потерями.
Есть ли?Или что было бы лучше всего здесь?
Я уже создал функцию, которая обрезает и удаляет конечные нули для преобразования, но я бы предпочел использовать стандартную функцию .NET BCL, если одна такая существует.