2011-07-05 3 views
0

SqlDecimal 데이터 형식은 CLR 기본 Decimal 데이터 형식보다 많은 비트를 압축합니다. 그렇다면 어떻게 가장 실용적인 방법으로 둘 사이를 매핑 할 수 있을까요? 이것은 잘 작동하지 않습니다.SqlDecimal을 10 진수로 변환

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

더 많은 숫자를 전달하려면 후행 0을 제거 할 수 있습니다. 그러나 변환이 제공하는 정밀도의 손실을 수락하면이 손실 변환을 수행하는 함수가 있어야합니다.

있습니까? 또는 여기에 모범 사례가 무엇입니까?

변환을 수행하기 위해 이미 자르기와 후행 0을 제거하는 함수를 만들었지 만, 표준 .NET BCL 함수가 있으면이 함수를 사용합니다.

+0

공백은 십진수와 어떤 관계가 있습니까? 그런 개념이 없습니다 ... –

+0

SQL Decimal 타입의 스케일을 유지해야한다면, 왜 그것을 'SqlDecimal'로 유지하지 않을까요? 왜 그것을 십진수로 변환해야합니까? –

+0

@ 대니얼 - 공백이 아닌 0의 후행입니다. –

답변

1

SqlDecimal.Round은 .NET decimal 유형과 일치하는 정밀도로 사용하십시오.

관련 문제