2011-01-24 66 views
0

如何檢測一個值是4字節的浮點類型還是8字節的浮點類型,或者都不在C#中?關於浮點類型的問題

+0

你是什麼意思的「價值」? 「值是4字節...還是8字節」是什麼意思? – jason 2011-01-24 06:39:45

+0

應該是可變的。沒有價值。抱歉。 – 2011-01-24 06:59:34

回答

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

要看到你的變量是一個浮動與否,使用下面的代碼

if(myVariable is float){ 
    ... 
} 

要查看實際大小浮動,如果這是你所需要的:

int length = sizeof(float); 

您不能使用sizeof(myVariable),因此您必須同時使用上述兩種方法。

4

float在C#中始終是System.Single的別名,它總是一個4字節的浮點值。

double在C#中始終是System.Double的別名,它是一個8字節的浮點值。

如果你正在處理一個float值,在C#中,它總是4個字節。這不是平臺相關的,而是由C#規範保證的。

C#的規格,第1.3節(類型和變量)狀態這明確地:

兩個浮點類型,浮點和雙,使用的是32位單精度和64位雙表示精確的IEEE 754格式。