在ansi C中添加双精度会产生意外结果

时间:2017-01-26 05:27:06

标签: c

对于我的学校项目,我们需要用双打数学。我当前的代码会产生一些意想不到的结果。

/* Hello World program */

#include<stdio.h>

int main()
{

double result = 0.0;
double x;
x = 10.0;

result = x + 10.0;

printf("%d", result);

return 0;

}

运行后,此代码将打印:&#34; -1267258024&#34;

我不明白为什么会这样?为什么代码不能打印20.0?

谢谢!

编辑:我真傻。 %d用于花车。谢谢!

1 个答案:

答案 0 :(得分:2)

该行

printf("%d", result);

表示您要打印整数。

你可能想要

printf("%f", result);

还有%lf(行为与%f相同)和%Lf(适用于长双打)等内容,您可以在this answer上阅读。

可以找到完整的格式选项列表here