Wie ausgabeformat von zahlen ändern?



  • Schreib mal std:: vor cout und ios . Der Header <iostream> wurde vorher eingebunden?



  • wow super.... std hat das Problem gelöst.
    aber, wenn ich jetzt schreibe

    std::cout<<setprecision(5);
    

    sagt er setprecision sei eine undefinierte Funktion.....



  • Sehr viel scheinst du ja nicht gerade zu überlegen... 🙄

    Wie alles in der Standardbibliothek ist auch setprecision() im Namensraum std .



  • Nexus schrieb:

    Sehr viel scheinst du ja nicht gerade zu überlegen... 🙄

    Wie alles in der Standardbibliothek ist auch setprecision() im Namensraum std .

    Guten Morgen
    Das dachte ich mir das das jetzt kommt, aber das hab ich natürlich auch versucht.

    std::cout>>std::setprecision(5);
    

    ---> [C++ Fehler] Unit1.cpp(72): E2316 'setprecision' ist kein Element von 'std'


  • Administrator

    Ich wette jetzt hast du vergessen den Header <iomanip> zu inkludieren ...
    Sag mal, hast du schon mal ein sinnvolles Tutorial oder Buch zu C++ gelesen?

    Grüssli



  • hmm, hab ich includet aber funktioniert trotzdem nicht.
    an lesen bin ich dran,bin gerade beim Umstieg von C auf C++.Aber tut mir leid das ich kein guter Programmiere bin. Trotzdem danke für die hilfe

    gruß



  • versuchs mal mit denken und verstehen was man macht



  • Probier mal das Beispiel von hier, das sollte funktionieren, sonst ist dein Compiler Schrott 😉

    physikus schrieb:

    Aber tut mir leid das ich kein guter Programmiere bin.

    Quatsch, das braucht dir nicht Leid tun, wir haben alle mal angefangen und das Forum ist für Fragen da 🙂

    edit: Ok, sehe grad dass du die VCL (Borland Builder?) verwendest, keine Ahnung ob man da das Beispiel einfach so kompilieren kann.


  • Administrator

    Ist mir nur gerade so aufgefallen:

    std::cout>>std::setprecision(5);
    

    Das wird sicher aus einem anderen Grund noch einen Fehler erzeugen.

    std::cout << std::setprecision(5);
    

    Den falschen Shift-Operator verwendet 😉

    Für deine Fehlermeldung, zeig doch nochmals etwas mehr Kontext. Oder ein Minibeispiel, welches wir kompilieren können, bei dir aber der gleiche Fehler erzeugt. So ein Minibeispiel hilft einem selber oft auch, einen Fehler zu finden 😉

    Grüssli



  • Hallo
    Hatte gestern leider keine Zeit, aber hier jetzt mal ein kleines Beispiel:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #include <math.h>
    #include <iostream>
    #include <iomanip>
    #pragma hdrstop
    #include "Unit1.h"
    #include "Project1.cpp"
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    std::cout.setf(std::ios::fixed);
    std::cout<<std::setprecision(3);
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    float a=1465555;
    float b=0;
    
    b=1/a;
    Edit1->Text=b;
    }
    //---------------------------------------------------------------------------
    

    Wenn ich das compilieren will, bekomm ich folgende Meldung:

    [C++ Fehler] Unit1.cpp(24): E2356 Redeklaration von '_STL::cout' mit anderem Typ
    [C++ Fehler] iostream(51): E2344 '_STL::cout' bereits deklariert
    [C++ Fehler] Unit1.cpp(25): E2356 Redeklaration von '_STL::cout' mit anderem Typ
    [C++ Fehler] iostream(51): E2344 '_STL::cout' bereits deklariert

    Mein Wunsch wäre nun das er mir 0.000 ausgibt, also keine exp schreibweise und nur 3 nachkommastellen.
    Arbeiten tue ich mit dem Borland C++ Builder 6.0 Pesonal

    Gruß


Anmelden zum Antworten