c - 当我尝试打印幂函数的结果时,我总是得到 0

标签 c printing

我是 C 语言的初学者,当我尝试编写这样的代码时:

printf("\n  Answer : %d \n", 12* pow(2,1));   

我总是得到答案:0 但是当我像这样写一个 float 时:

printf("\n  Answer : %f \n", 12* pow(2,1)); 

我得到:答案:24.0000

有人知道为什么会这样吗? 我的意思是为什么十进制打印为 0? 太感谢了。

最佳答案

你看到的是Undefined Behaviour的结果.

printf 期望的类型与传递的类型不匹配。

说明符 "%d" 必须匹配 int 类型的值,但匹配您在表达式中提供的 double 类型的值.

一切皆有可能。

关于c - 当我尝试打印幂函数的结果时,我总是得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798520/

相关文章:

python - 在Python中动态改变浮点精度

java - 在 Java Swing 组件中打印

java - 如何在javax.print中获取打印机的型号?

c - 为什么复制字符串时缓冲区溢出?

c++ - 计算 64 位 int 的百分比

c - 结构类型的排序数组

c - OpenGL 背景颜色渐变器

android - 适用于 Android 的蓝牙打印机的步骤

c - 按数据包计数的升序打印输出

c++ - 如何在 Linux 中的虚拟网络摄像头上写字?