首页 > 解决方案 > 将字符和整数值的加法打印为浮点数

问题描述

我只是想知道为什么当我尝试打印 achar和整数值的加法时会得到 0 值。我的代码如下:

int y;
y = 10;

char z;
z = '9';
printf("%f", z + y);

标签: cprinting

解决方案


这个 printf 的调用

printf("%f", z + y);

调用未定义的行为,因为您%f对 int 类型的对象使用了不正确的转换说明符。

您需要转换参数,例如

printf( "%f", ( double )( z + y ) );

或者

printf( "%f", ( float )( z + y ) );

尽管在最后一种情况下,由于默认参数提升,参数将被提升为 double 类型。


推荐阅读