使用英语阅读

通过


OpCodes.Conv_R8 字段

定义

将位于计算堆栈顶部的值转换为 float64

public static readonly System.Reflection.Emit.OpCode Conv_R8;

字段值

注解

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
6C conv.r8 float64转换为 ,在F堆栈上推送。

堆栈过渡行为(按顺序排列)为:

  1. value 被推送到堆栈上。

  2. value 从堆栈中弹出,并尝试转换操作。

  3. 如果转换成功,则生成的值将推送到堆栈上。

conv.r8 opcode 将value堆栈顶部的 转换为操作码中指定的类型,并将转换后的值保留在堆栈顶部。 当小于 4 字节 int32 的整数值加载到评估堆栈 (时,除非 conv.i 使用 或 conv.u ,在这种情况下,结果也会 native int) 。 浮点值将转换为 F 类型。

从浮点数转换为整数值会将数字截断为零。 从 float64 转换为 float32时,精度可能会丢失。 如果 value 太大而无法容纳 , float32 (F)则正无穷大 (为 value 正) 或负无穷大 (如果 value 为负) 返回。 如果在将一个整数类型转换为另一个整数类型时发生溢出,则会截断高阶位。 如果结果小于 , int32则值将进行符号扩展以填充槽。

如果发生溢出,将浮点类型转换为整数,则返回的值未指定。

使用此字段时不会引发异常。

以下 Emit 方法重载可以使用 conv.r8 opcode:

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0