2017-01-26 5 views
-2

Für meine Schulprojekt wir sind mit Doppel Mathematik zu tun. Mein aktueller Code führt zu unerwarteten Ergebnissen.Hinzufügen Doppel in ANSI C führt zu unerwarteten Ergebnissen

/* 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; 

} 

Beim Laufen, dieser Code druckt: "-1267258024"

Ich verstehe nicht, warum dies geschieht? Warum druckt der Code 20.0 nicht?

Danke!

EDIT: Ich bin so dumm. % d ist für Floats. Vielen Dank!

+4

'% d' ist für Ganzzahlen. – user2357112

+4

Das falsche ['printf'] (http://en.cppreference.com/w/c/io/fprintf) Format führt zu * undefiniertem Verhalten *. –

+0

Ich bin so dumm. Vielen Dank! –

Antwort

2

Die Linie

printf("%d", result); 

zeigt an, dass Sie eine ganze Zahl gedruckt werden soll.

Sie wollen wahrscheinlich

printf("%f", result); 

Es gibt auch Dinge wie %lf (das gleiche wie %f wirkt) und %Lf (arbeitet für lange Doppelzimmer), die Sie auf this answer lesen können.

Eine vollständige Liste der Formatierungsoptionen können here finden.

Verwandte Themen