【发布时间】:2015-03-01 20:13:07
【问题描述】:
我是 C 的初学者,当我尝试编写类似的代码时:
printf("\n Answer : %d \n", 12* pow(2,1));
我总是得到答案:0 但是当我写成这样的浮点数时:
printf("\n Answer : %f \n", 12* pow(2,1));
我得到:答案:24.0000
有人知道为什么会这样吗? 我的意思是为什么十进制打印为 0 ? 非常感谢。
【问题讨论】:
-
#include <stdio.h>,将编译器警告设置为尽可能高,并注意警告! -
为什么票数接近?这类问题有明确的答案,非常适合 SO。
-
您可能想在这里 RTFM:man7.org/linux/man-pages/man3/printf.3.html(我多久阅读一次此页面,所以即使是初学者也可能会这样做?)
-
顺便说一句。两个 printf 语句的转换说明符都尝试打印“decimals”。