1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

C programmieren mit XCode - datentypen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von moescream, 03.01.07.

  1. moescream

    moescream Gast

    Hallo,

    ich bin gerade dabei ein recht simples Programm (in C) für die Uni zu schreiben, allerdings scheitere ich daran, dass XCode offensichtlich den Datentyp "double" nicht erkennt. Ich hab meine Variablen wie üblich als
    double dZahl1=0.0
    initialisiert, aber das Programm spinnt total und zeigt dann bei der Ausgabe (nachdem den Variablen neue Werte zugewiesen wurden wohlgemerkt!) nur 0.00000 an - und das auch nur, wenn ich in der printf- Zeile %f statt %d schreibe.
    Kann es sein, dass man den Datentyp double anders initialisieren muss?
    vielen Dank!!! mo
     
  2. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Nein, mit 0.0 initialisieren ist schon OK. Da muss ein anderer Programmierfehler vorliegen. Poste doch mal einen Quellcodeschnippsel.
     
  3. MatzeLoCal

    MatzeLoCal Rheinischer Bohnapfel

    Dabei seit:
    05.01.04
    Beiträge:
    2.421
    Also bei mir gehts

    Code:
    #include <stdio.h>
    
    int main (int argc, const char * argv[]) {
    
        double aDouble = 0.0;
        printf("%f \n",aDouble);
        aDouble = 4.2;
        printf("%f \n",aDouble);
        return 0;
    }
    
    Ausgabe:
    Code:
    [Session started at 2007-01-04 08:24:25 +0100.]
    0.000000 
    4.200000 
    
    DoubleC has exited with status 0.
    
     
  4. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.251
    Du solltest ein minimales Programm posten in dem der Fehler reproduzierbar auftritt und man sagen kann woran es liegt. Deine Fehlerbeschreibung ist vollkommen nutzlos Dir auch nur irgend einen Tip zu Fehlerbehebung geben zu können.
     
  5. Gogul

    Gogul Uelzener Rambour

    Dabei seit:
    21.05.04
    Beiträge:
    372
    das mit %f stimmt, braucht man wenn man kommazahlen (float, double) benutzt!
     
  6. moescream

    moescream Gast

    Sorry das ich erst jetzt antworten kann, aber ich war die letzten Tage leider vom Internet abgeschnitten. Danke dass gleich so viele von euch auf meine Frage geantwortet haben!! Mittlerweile hab ich das Programm ans Laufen gebracht, der Fehler lag an besagtem %d bzw. korrekt: %f. Das einzige was ich jetzt noch nicht verstehe ist, warum ich nur Dezimalzahlen mit maximal 7 Stellen einlesen/ bzw ausgeben lassen kann. Meines Wissens müsste eine Variable vom Typ Double doch bis zu 15 Stellen nach dem Komma speichern können, das ist doch ihre Eigenschaft, oder?
    Ich hab auch mal den Quellcode gepostet, dann könnt ihr euch ein Bild machen. Die Sache ist glaub ich relativ selbsterklärend - die Aufgabe lautete einen Taschenrechner zu "simulieren"...
     
  7. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.251
    Nein, ISO C 9899:2001 definiert in <floats.h> für double eine Mindestanzahl von 10 Dezimalstellen. Wieviel Dezimalstellen eine Implementation hat, kannst Du mit dem Makro DBL_DIG herausbekommen. Im Falle von MacOS X sind das 15 Dezimalstellen.

    Die Anzahl der ausgegeben Dezimalstellen muß man durch das Ausgabeformat festlegen. Lies Dir die Doku zu printf() durch.
     

Diese Seite empfehlen