2011-01-24 9 views
0

値を検出するには、浮動小数点型が4バイトか浮動小数点型が8バイトかどうか、C#ではどちらも検出できませんか? 、それはあなたの変数がfloatであるかを確認するには浮動小数点型に関する質問

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

「価値」とはどういう意味ですか? 「値は4バイトか8バイト」という意味はどういう意味ですか? – jason

+0

は可変である必要があります。値ではありません。ごめんなさい。 –

答えて

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

また、これは同じことを行う必要があります浮動小数点数が必要な場合:

int length = sizeof(float); 

sizeof(myVariable)は使用できませんので、上記の2つの方法の両方を使用する必要があります。

+1

これは、OPが後になっているかわからない。 – jason

+0

彼のチェックマークによると、私はそれがあったと思う;) –

+0

私は質問に他の妥当な意味を考えることができませんでした。 – Gabe

1

実際のサイズを確認するには、次のコード

if(myVariable is float){ 
    ... 
} 

を使用します。

4

floatは常にSystem.Singleのエイリアスで、常に4バイトの浮動小数点値です。

doubleは、C#で常にSystem.Doubleのエイリアスです。これは8バイトの浮動小数点値です。

floatの値を扱う場合、C#では常に4バイトです。これはプラットフォームに依存するのではなく、C#仕様で保証されています。

C#の仕様、セクション1.3(タイプおよび変数)の状態明示的:

2つの浮動小数点型、フロート、ダブル、32ビットの単精度を用いて表現し、64ビットの二重さ-precision IEEE 754形式。

関連する問題