Wert nach einem bestimmten Satz in einer txt datei suchen
-
OK Danke.
Ich wusste nicht das man solche Abkürzungen schreiben kann. Habs aber jetzt vertsanden.
-
Was mache ich falsch?
Ich wollte den einfachen Code von Werner Salomon etwas ändern um die Werte in einem Array zu speichern zu vergleichszwecken jedoch sind die Gleitkommazahlen zu kurz. Eigentliche Zahl:1300.93576; Angezeigte Zahl: 1300.94;int zaehler=0; void da(double x,double y){ using namespace std; while (zaehler != 2) { double koordinaten[2] = {0,0}; koordinaten[zaehler]=x; zaehler++; koordinaten[zaehler]=y; zaehler++; cout<<koordinaten[0]<<koordinaten[1]<<endl; }
-
Was mache ich falsch?
du weißt zu wenig über programmierung, um zu erkennen was du vor dir siehst.
einfache gegenfrage: wenn computer fließkommawerte absolut exakt speichern würden, wie viel speicher wäre nötig, um zum beispiel mit PI zu rechnen?
-
64bit
-
BoomC schrieb:
64bit
Begründe doch mal, wieso man 64 Bit braucht, um Pi darzustellen. Warum reichen 63 nicht? Sind 65 zu viel?
-
Ich schon zwei mal gesagt das ich noch ein Anfänger bin.
Ich weiss nur das PI 13 stellen hat un ein float zu klein und ein long double könnte gehen jedoch ist das Speicherverschwendung.
-
BoomC schrieb:
Ich schon zwei mal gesagt das ich noch ein Anfänger bin.
Ich weiss nur das PI 13 stellen hat un ein float zu klein und ein long double könnte gehen jedoch ist das Speicherverschwendung... die wollen Dich auf den Arm nehmen

PI hat als numerische Größe unendlich viele Stellen und kein Computer im Universum kann PI als Zahl exakt darstellen.Bei der Ausgabe einer Zahl (z.B. per
std::cout) wird diese mit einer (maximalen) festen Anzahl von Ziffern dargestellt (Default=6). Schau Dir mal setprecision an.Gruß
Werner
-
Werner Salomon schrieb:
BoomC schrieb:
Ich schon zwei mal gesagt das ich noch ein Anfänger bin.
Ich weiss nur das PI 13 stellen hat un ein float zu klein und ein long double könnte gehen jedoch ist das Speicherverschwendung... die wollen Dich auf den Arm nehmen

Jain. Eigentlich wollte ich durch die Gegenfrage eine Reflektion über die Unsinnigkeit der Antwort "64" anregen. Ich hatte halt nicht im geringsten erwartet, dass dem TE tatsächlich das nötige mathematische Wissen fehlt. Dadurch sieht mein Beitrag jetzt bösartiger aus als er gedacht war, weil meine sarkastische Bemerkung unanbsichtlich genau ins Schwarze getroffen hat.
-
Das wusste ich auch,dache nur ich sollte PI darstellen (3.14159265359) egal.
Find ich toll von den Moderatoren wie hilfreich sie sind...machen sich lustig über mich. Danke Werner Salomon für den link ich werde es gleich ausprobieren.
-
BoomC schrieb:
Das wusste ich auch,dache nur ich sollte PI darstellen (3.14159265359) egal.
Aber das ist nicht Pi! Schon Captain Kirk hat anno 1966 Computer damit verwirrt, dass sie Pi bis zur letzten Stelle berechnen sollten. So etwas ist Allgemeinwissen!
-
BoomC schrieb:
Das wusste ich auch,dache nur ich sollte PI darstellen (3.14159265359) egal.
http://pi314.at/math/100000digits.html
Das sind nur einige Stellen von pi, es gibt unendlich viele!
-
"setprecision" ist nur für die Ausgabe damit der User alle Zahlen sehen kann und Programmintern sind schon alle im double drin...hab ich das richtig vertanden?
Und die Anweisung
cout<<"x="<<setprecision(5) <<koordinaten[0];geht nicht.
-
"geht nicht" geht nicht.
Falls du nicht verstehst, was ich damit meine: Eben das ist das Problem.
-
BoomC schrieb:
"setprecision" ist nur für die Ausgabe damit der User alle Zahlen sehen kann und Programmintern sind schon alle im double drin...hab ich das richtig vertanden?
Wobei alle Zahlen nicht alle Zahlen sind, sondern nur die ersten bzw. auch falsche Ziffern.
Und die Anweisung
cout<<"x="<<setprecision(5) <<koordinaten[0];geht nicht.
Wie solls auch gehen? Das ist Code, der hat keine Beine.

-
Nathan schrieb:
Wie solls auch gehen? Das ist Code, der hat keine Beine.

Und wie macht man ihn Beine? :p
-
BoomC schrieb:
"setprecision" ist nur für die Ausgabe damit der User alle Zahlen sehen kann und Programmintern sind schon alle im double drin...hab ich das richtig vertanden?
Ja - bzw. fast ja. Im double ist die Zahl drin, die Deiner Eingabe am nächsten kommt.
BoomC schrieb:
Und die Anweisung
cout<<"x="<<setprecision(5) <<koordinaten[0];geht nicht.
wahrscheinlich fehlt #include <iomanip> - bitte Hilfe ganz durchlesen!
-
Werner Salomon schrieb:
wahrscheinlich fehlt #include <iomanip> - bitte Hilfe ganz durchlesen!
#include <iostream> #include <fstream> #include <string> #include <limits> // std::numeric_limits<> #include <iomanip> int zaehler=0; void da(double x,double y){ using namespace std; while (zaehler != 2) { double koordinaten[2] = {0,0}; koordinaten[zaehler]=x; zaehler++; koordinaten[zaehler]=y; zaehler++; cout<<"x="<<setprecision(9) <<koordinaten[0]; cout<<setprecision(9) <<" y="<<koordinaten[1]<<endl;ist drin.
-
.. dann geht's auch. Rufe die Funktion '
da' mal mitda(1./7,46./3);auf
-
.. sei noch bemerkt, dass Du die Funktion
da()nur genau einmal aufrufen darfst - beim nächsten Mal liefert sie Muell und macht den Speicher kaputt.
-
Werner Salomon schrieb:
.. sei noch bemerkt, dass Du die Funktion
da()nur genau einmal aufrufen darfst - beim nächsten Mal liefert sie Muell und macht den Speicher kaputt.Das ist es gewesen.