вопрос по типу поплавка - PullRequest
       12

вопрос по типу поплавка

0 голосов
/ 24 января 2011

Как определить значение типа с плавающей запятой 4 байта или с плавающей запятой 8 байтов или нет в C #?

Ответы [ 3 ]

4 голосов
/ 24 января 2011

float в C # всегда является псевдонимом для System.Single, который всегда является 4-байтовым значением с плавающей точкой.

double в C # всегда является псевдонимом для System.Double, который является 8-байтовым значением с плавающей запятой.

Если вы имеете дело со значением float, в C # это всегда 4 байта. Это не зависит от платформы, а скорее гарантируется спецификацией C #.

Спецификация C #, раздел 1.3 (Типы и переменные) утверждает это явно:

Два типа с плавающей запятой, float и double, представлены в 32-битном формате IEEE 754 с одинарной точностью и 64-битной двойной точностью.

4 голосов
/ 24 января 2011
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 голос
/ 24 января 2011

Чтобы увидеть, что ваша переменная является плавающей точкой или нет, используйте следующий код

if( myVariable is float ){
  ...
}

Чтобы увидеть фактический размер плавающей запятой, если вам это нужно:

int length = sizeof(float);

Вы не можете использовать sizeof(myVariable), поэтому вы должны использовать оба вышеуказанных подхода.

...