2017-01-26 9 views
-2

私の学校のプロジェクトでは、倍精度で計算する必要があります。私の現在のコードは予期しない結果を引き起こします。ansi 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; 

} 

、このコードを印刷: "-1267258024"

これがなぜ起こるか私は理解していませんか?コードが20.0を印刷しないのはなぜですか?

ありがとうございます!

編集:私はとても愚かです。 %dは浮動小数点数です。ありがとうございました!

+4

'%d'は整数です。 – user2357112

+4

誤った['printf'](http://en.cppreference.com/w/c/io/fprintf)形式を使用すると、*未定義の動作につながります*。 –

+0

私はとてもばかだ。どうもありがとうございました! –

答えて

2

ライン

printf("%d", result); 

あなたが整数を印刷することを示しています。

おそらく%lfのようなもの(%f全く同じ動作をする)とあなたがthis answerして約読むことができ%Lf(長いダブルスのための作品)もあります

printf("%f", result); 

をしたいです。

フォーマットオプションの完全なリストはhereです。

関連する問題