VB 또는 C#의 "decimal"값의 내부 형식은 무엇입니까?vb/C# 10 진수 내부 형식
나는이 일이 내가 즉시하고있는 일과 관련이 있는지 알지 못한다. 그러나 그것은 알아두면 좋은 것들 중 하나이다. 마찬가지로, 얼마나 많은 비트와 음수가 저장되어 있는지 알면 양수가 예상되는 위치에 음수가 나타날 때 깊은 어둠의 신비에 당황하는 대신 "아, 오버플로가있었습니다"라고 즉시 생각할 수 있습니다. .
VB 또는 C#의 "decimal"값의 내부 형식은 무엇입니까?vb/C# 10 진수 내부 형식
나는이 일이 내가 즉시하고있는 일과 관련이 있는지 알지 못한다. 그러나 그것은 알아두면 좋은 것들 중 하나이다. 마찬가지로, 얼마나 많은 비트와 음수가 저장되어 있는지 알면 양수가 예상되는 위치에 음수가 나타날 때 깊은 어둠의 신비에 당황하는 대신 "아, 오버플로가있었습니다"라고 즉시 생각할 수 있습니다. .
귀하의 질문에 대한 대답은 documentation에 의해 전체 선명으로 제공됩니다
진수 값 유형은 긍정적 79,228,162,514,264,337,593,543,950,335 부정적인 79,228,162,514,264,337,593,543,950,335에 이르기까지 진수를 나타냅니다. 십진 값 형식은 큰 숫자와 소수점 자릿수 및 반올림 오류가 필요하지 않은 재무 계산에 적합한 입니다. Decimal 형식으로 반올림하지 않아도됩니다. 오히려 반올림으로 인한 오류를 최소화하기 위해 입니다.
10 진수 부동 소수점 의 위치를 나타내는 기호로 구성되는 부동 소수점 값의 값에서 각 숫자는 0 내지 9 범위의 수치 및 스케일링 인자 숫자 값의 정수 부분과 분수 부분을 구분합니다. 96 비트 정수 번호 및 96 비트 정수를 분할하고, 소수이고 그것의 어떤 부분을 지정하는 데 사용되는 스케일링 인자 진수 값의 이진 표현은 1 비트의 부호로 구성
, . 스케일링 인자 암시 따라서 0 내지 28 범위의 지수 로 상승 수가 10이고하는 십진 값의 이진 표현 형태이며, ((-2 9696 2)/(--1이 MinValue와 같고,-1이 MaxValue와 동일한 경우, 1(0 내지 28))이된다. Decimal 값의 이진 표현 및 예제에 대한 자세한 내용은 Decimal(Int32[]) 생성자 및 GetBits 메서드를 참조하십시오.
또한 배율 인수는 십진수 숫자의 모든 후행 0을 유지합니다. 후행 0은 산술 또는 비교 연산의 10 진수 값에 영향을주지 않습니다. 그러나 적절한 형식 문자열이 인 경우 ToString 메서드에 의해 표시된 후행 0은 이 될 수 있습니다.
이진 표현 GetBits
의 설명서에 기재된 바와 같이 :
, 96 비트 정수, 및 정수를 나눗셈하는 데 사용되는 스케일 인수로 소수 부분을 지정합니다. 스케일링 인수는 암시 적으로 숫자 10이며 지수가 이고 범위는 0에서 28입니다.
반환 값은 32 비트 부호있는 정수의 네 요소로 구성된 배열입니다.
반환되는 배열의 첫 번째, 두 번째 및 세 번째 요소에는 의 96 비트 정수 중 32 비트가 포함됩니다.
반환되는 배열의 네 번째 요소에는 배율 인수와 부호가 포함됩니다. 다음 파트로 구성됩니다.
비트 0-15는 사용되지 않으므로 0이어야합니다.
비트 16 ~ 23은 0 ~ 28 사이의 지수를 포함해야하며, 은 정수를 나눌 10의 지수를 나타냅니다.
비트 24-30은 사용되지 않으므로 0이어야합니다.
비트 31에는 부호가 포함되어 있습니다. 0은 양수를 의미하고 1은 음수를 나타냅니다.
비트 표현은 음수와 양수 0을 구별합니다. 이 값은 모든 작업에서 동일하게 취급됩니다.
감사합니다. 나는 System.decimal을 보지 않을 것이라고 생각했는데 표준 데이터 유형 목록을보고 범위에 대해서는 이야기했지만 형식에 대해서는 언급하지 않았습니다. 좋습니다, 어쩌면 저것은보기에 명백한 곳이었을 것입니다. 그리고 나는 두뇌가 멈추었습니다. – Jay
모두 C# 및 VB.NET decimal
문서화가 잘되어, System.Decimal
지칭 : System.Decimal
진수 키워드는 128 비트의 데이터 타입을 나타낸다. 부동 소수점 유형과 비교할 때 십진 유형은 더 높은 정밀도와 범위를 가지므로 재정 및 통화 계산에 적합합니다. 십진 유형 의 대략적인 범위와 정밀도는 다음 표에 나와 있습니다.
범위 : ± 1.0 × 10-28 7.9 × 1,028 정밀도, ± : 28-29 유효 숫자
Decimal Data Type (Visual Basic)
를 나타내는 128 비트 (16 바이트) 값을 서명 보존 조치 96 비트 (12 바이트) 가변 수 10으로 스케일 된 정수. 스케일링 인수 은 소수점 오른쪽의 자릿수를 지정합니다. 의 범위는 0에서 28까지입니다. 소수점 이하 자릿수가 0 인 경우 은 +/- 79,228,162,514,264,337,593,543,950,335 (+/- 7.9228162514264337593543950335E + 28)입니다. 소수 자릿수 28자를 사용하면 최대 값은 +/- 7.9228162514264337593543950335이고 가장 작은 값은 0이 아닌 값은 +/- 0.0000000000000000000000000001 (+/- 1E-28)입니다.
http://stackoverflow.com/questions/618535/what-is-the-difference-between-decimal-float-and-double-in-c 또는 더 나은 http://csharpindepth.com/Articles /General/Decimal.aspx –