Verhindern der Wissenschaftlichen Ansicht von Zahlen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Verhindern der Wissenschaftlichen Ansicht von Zahlen?

    Hey alle zusammen,

    habe mal wieder ein große Problem! (Langsam am verzweifeln)

    Ich schreibe mit einem Kumpel im mom an ein "Brute-Force-Rechner". Der Berechnet nach Eingabe der Länge des Passwort und Anzahl der verscheiden Zeichen. Die vielen Möglichkeiten die es gibt und dann wie lang man braucht um es raus zu bekommen. (Grafik)

    Und jetzt unser Problem:

    Wenn eine zahl mehr als 18 stellen hat wechselt er in die wunderschöne Wissenschaftliche Ansicht mit dem E! Ja und genau das soll er nicht machen.

    Haben schon Formatierung versucht wie:

    Quellcode

    1. Memo3->Text = FloatToStrF(D, ffNumber, 1000,1);
    2. Memo3->Text = FormatFloat("0,00", pow(B,A));


    Ja aber nix von beiden Hilft!

    Hat jemand eine schlaue Idee wie wir das verhindern können dass er wechselt oder eine ander Idee?

    Auf Wunsch kann ich das Programm oder den Quelltext noch hoch laden. wenn das hilft.



    DANK für die Hilfe schon mal
    Foxhunter
    "Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei."
  • ich kann dir bei dem Problem leider nicht direkt helfen, ich kann dir aber sagen WARUM es diese Probleme gibt:
    In C++ hat ne Double (bei den meisten compilern und Plattformen) ne genauigkeit von 15-16Stellen. Alle weiteren Stellen, die danach noch kommen sind schlichtweg falsch (bzw mehr oder weniger zufällig). Und deswegen gibt er die weiteren Stellen auch ungern aus, da falsche Zahlen eher unschön sind ;)
    dazu auch Unterschied zwischen float und double
  • Bei der "wisschenschaftichen" Ansicht sollte ebenfalls beachtet werden, dass beispielsweise 2³ nicht 2*2*2 sind sondern 2*10³. Dementsprechend würde er meines Erachtens nach bei einer Zahl, die mit einem Exponenten angegeben wird einfach den Rest nur noch mit Nullen füllen.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Deadman44 schrieb:

    Dementsprechend würde er meines Erachtens nach bei einer Zahl, die mit einem Exponenten angegeben wird einfach den Rest nur noch mit Nullen füllen.

    Hät ich auch gedacht, aber bei dem Programm in dem von mir verlinkten Thread kommt (mit dem gcc-compiler) ein "willkürlicher" Zahlenbrei raus ab ner gewissen Stelle (abhängig vom Datentyp).
    Das liegt daran, dass er die Zahl intern nicht mit 10er Exponent speichert, sondern zur Basis 2. Daher kommt beim "zurückrechnen" ne Zahl mit deutlich mehr Stellen raus, als man evtl. reingesteckt hat.
    Man bräuchte halt ne Funktion, die eben für die "E-Zahlen" die richtigen Stellen nimmt und dann nullen anhängt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rondrer ()