2011-01-24 5 views
0

값을 4 바이트 float 유형 또는 8 바이트 float 유형 또는 둘 다 C#으로 감지 할 수 있습니까?float 유형에 관한 질문

+0

"가치"는 무엇을 의미합니까? "value는 4 바이트 또는 8 바이트"란 무엇을 의미합니까? – jason

+0

은 가변적이어야합니다. 가치가 없다. 죄송합니다. –

답변

4
if (obj.GetType() == typeof(float)) 
    // 4-byte float 
else if (obj.GetType() == typeof(double)) 
    // 8-byte float 
else 
    // other 

또한,이 같은 일을 수행해야합니다

if (obj is float) 
    // 4-byte float 
else if (obj is double) 
    // 8-byte float 
else 
    // other 
+1

이것이 OP가 무엇인지 확실하지 않습니다. – jason

+0

그의 체크 표시에 따르면, 나는 그랬다고 생각한다;) –

+0

나는 그 질문에 대한 다른 합당한 의미를 생각할 수 없었다. – Gabe

1

이 변수가 부동인지를 보려면을 실제 크기를 확인하려면 다음 코드

if(myVariable is float){ 
    ... 
} 

를 사용 플로트가 필요한 경우 :

int length = sizeof(float); 

sizeof(myVariable)을 사용할 수 없으므로 위의 두 가지 방법을 모두 사용해야합니다.

4

float은 항상 System.Single의 별칭이며, 항상 4 바이트 부동 소수점 값입니다.

double (C#의 경우)은 항상 System.Double의 별칭이며 8 바이트 부동 소수점 값입니다.

float 값을 처리하는 경우 C#에서는 항상 4 바이트입니다. 이것은 플랫폼에 의존하지 않고 C# 사양으로 보장됩니다.

는 C# 사양

, 섹션 1.3 (종류와 변수) 상태를 명시 적 :

두 포인트 유형, 플로트 및 부동 번, 32 비트 단일 정밀도 및 64 비트 더블를 이용하여 표현되는 -precision IEEE 754 형식.