从浮点类型的转换
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 不准确。