Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 浮点数问题_C#_Types_C# 2.0 - Fatal编程技术网

C# 浮点数问题

C# 浮点数问题,c#,types,c#-2.0,C#,Types,C# 2.0,如何在C#中检测值是4字节浮点型还是8字节浮点型,或者两者都不是 或者,这应该做同样的事情: if (obj is float) // 4-byte float else if (obj is double) // 8-byte float else // other 要查看您的变量是否为浮点,请使用以下代码 if( myVariable is float ){ ... } 要查看浮点的实际大小(如果需要): int length = sizeof(float);

如何在C#中检测值是4字节浮点型还是8字节浮点型,或者两者都不是

或者,这应该做同样的事情:

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

要查看您的变量是否为浮点,请使用以下代码

if( myVariable is float ){
  ...
}
要查看浮点的实际大小(如果需要):

int length = sizeof(float);
不能使用
sizeof(myVariable)
,因此必须同时使用上述两种方法。

float
在C#中始终是
系统的别名。Single
始终是一个4字节的浮点值

C#中的
double
始终是
System.double的别名,它是一个8字节的浮点值

如果您处理的是
float
值,在C#中,它总是4个字节。这不依赖于平台,而是由C#规范保证

C#规范第1.3节(类型和变量)明确规定:

浮点和双精度这两种浮点类型使用32位单精度和64位双精度IEEE 754格式表示


你说的“价值”是什么意思?“值是4字节…还是8字节”是什么意思?应该是可变的。没有价值。对不起。我不确定这是OP的目的。我想不出这个问题还有什么合理的含义。
int length = sizeof(float);