从浮点类型的转换

float 值转换为 二进制文件 或 long double或 二进制文件 转换为 long double,不对值的更改。 如果可能 二进制文件 值转换为 float 值正确地表示,。 ,如果值不能正确,表示精度可能丢失。 如果结果超出范围,该行为不确定。 为浮点类型的范围参见 在浮点常数的限制

一个浮动的值转换为整数值将首先转换为 long,然后从 long 值转换为特定整数值。 这个浮动的值的小数部分在对 long的转换过程中被丢弃。 如果结果仍太大而无法放入 long,转换的结果是未定义的。

Microsoft 专用

当转换 二进制文件 或 long double 浮点数转换为更小浮点数时,浮点变量的值将被截断以零,在下溢时发生。 溢出导致运行时错误。 请注意 Microsoft C 编译器映射 long double 键入 二进制文件

特定于 Microsoft 的结尾

下表总结了从浮点类型的转换。

从浮点类型的转换

发件人

若要

方法

float

char

long的转换; char的转换 long

float

short

long的转换; short的转换 long

float

long

截断在小数点。 如果结果太大而无法表示为 long,结果是未定义的。

float

unsigned short

long的转换; unsigned的short转换  long

float

unsigned long

long的转换; unsigned的long转换  long

float

double

更改内部表示形式

float

long double

更改内部表示形式

double

char

float的转换; char的转换 float

double

short

float的转换; short的转换 float

double

long

截断在小数点。 如果结果太大而无法表示为 long,结果是未定义的。

double

unsigned short

long的转换; unsigned short的转换 long

double

unsigned long

long的转换; unsigned的long转换  long

double

float

表示为 float。 如果 二进制文件 值不能正确地表示为 float,精度降低发生。 如果值太大而无法表示为 float,则结果是未定义的。

long double

char

float的转换; char的转换 float

long double

short

float的转换; short的转换 float

long double

long

截断在小数点。 如果结果太大而无法表示为 long,结果是未定义的。

long double

unsigned short

long的转换; unsigned的short转换  long

long double

unsigned long

long的转换; unsigned的long转换  long

long double

float

表示为 float。 如果 二进制文件 值不能正确地表示为 float,精度降低发生。 如果值太大而无法表示为 float,则结果是未定义的。

long double

double

long 二进制文件 值视为 二进制文件

,如果转换的值大于最大正值 long 值,从 float二进制文件或 long double 值的转换到 unsigned long 不准确。

请参见

概念

分配转换