泽兴芝士网

一站式 IT 编程学习资源平台

浮点型之间的转换_浮点型转换成字符串

在 C 语言中,当一个浮点型数值被转换为其它浮点类型时,如果新类型能够精确表示待转换值,则该值保持不变。例如:

double d1 = 12.34;
float f1 = d1; 
printf("f1 = %f\n", f1);

由于浮点值 12.34 能够被 float 类型精确表示,因此值保持不变,这段代码的运行结果是:

f1 = 12.340000

如果被转换的浮点值在可表示范围值内但不能精确表示,则结果要么是最接近可表示值的稍大值,要么是最接近可表示值的稍小值,具体选择哪个值取决于实现定义的方式。

如果被转换的浮点值不在可表示浮点值范围以内,该行为是未定义的。例如:

double d2 = DBL_MAX;
float f2 = d2; 
printf("f2 = %f\n", f2);

注:使用 DBL_MAX 前必须包含头文件 float.h。

当把 double 类型的最大可表示值 DBL_MAX 转换为 float 类型值时,由于超出了 float 类型的可表示范围,因此该行为是未定义的。在 x64 架构 Ubuntu 系统中,这段代码的输出是:

f2 = inf

此外,一些隐式转换的结果可能会使用比要求的浮点型更宽的范围和精度来表示。

#C语言每日小知识##头条创作挑战赛#

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言