C语言进阶:[5]数值的转换

2024-10-14 14:27:20

数值之间有时候需要转换,这时候十分容易出问题。分几种情况:

一:范围小的转换为范围大的:如int转换为long,或float,double。这时候,转换正常。

二:范围小的转换为范围大的:

1>范围大的数据变量所表示的数值在范围小的数值变量内,这时候转换是正确的。例如:

int x = 123;

float y = 234.3f;

x = y;

printf("%d\n",x);

显示结果:C语言进阶:[5]数值的转换

如果加上强制类型转换,结果也是不正确的。如果转换不得已,那么可以用浮点数的值和整型的最大值比较一下,就可以了,代码如下

int x = 123;

float y = 232333232344.3f;

if(y<INT_MAX)

x = y;

printf("%d\n",x);

总之数据类型之间的转换非常危险,一定要注意。

猜你喜欢