c - 将字符和整数值的加法打印为浮点数
问题描述
我只是想知道为什么当我尝试打印 achar
和整数值的加法时会得到 0 值。我的代码如下:
int y;
y = 10;
char z;
z = '9';
printf("%f", z + y);
解决方案
这个 printf 的调用
printf("%f", z + y);
调用未定义的行为,因为您%f
对 int 类型的对象使用了不正确的转换说明符。
您需要转换参数,例如
printf( "%f", ( double )( z + y ) );
或者
printf( "%f", ( float )( z + y ) );
尽管在最后一种情况下,由于默认参数提升,参数将被提升为 double 类型。
推荐阅读
- c# - C# - 无法覆盖 ==
- mysql - WHERE 子句返回不正确的结果
- android - 如何在 android studio 3.1.2 中启用注释处理器
- c# - C# datagridview 列在排序时清除
- mysql - 使用“源 Table.sql”时,mariadb 控制台不接受变异元音(元音变音)
- c# - 在现有文件的详细信息选项卡中添加/编辑新的扩展属性
- python - 在我切换窗口之前,OSX 上的 Tkinter 按钮浮雕不会改变
- javascript - Webpack ES6- 使用动态导入加载 Json(保留 json 文件)
- c# - Firestore REST 身份验证
- batch-file - 为什么重新格式化成功的批处理文件会导致失败?