Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Verhindern der Wissenschaftlichen Ansicht von Zahlen?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.02.2009, 22:33 Uhr
Fuchs



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:

C++:
Memo3->Text = FloatToStrF(D, ffNumber, 1000,1);

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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.02.2009, 00:51 Uhr
Hans
Library Walker
(Operator)



Zitat von Fuchs:
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:

C++:
Memo3->Text = FloatToStrF(D, ffNumber, 1000,1);

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?

Ja, solange Ihr da nur mit Standard-typen wie double bzw. long double arbeitet, könnt ihr den Wechsel zur wissenschaflichen Ansicht gar nicht verhindern, weil die nämlich nur 15 Stellen (double) bzw. 18 Stellen (long double) darstellen können. Um mit grossen Zahlen arbeiten zu können, dürft Ihr Euch also entweder ein passendes Datenformat ausdenken, wozu Ihr dann auch die Funktionen für die Grundrechenarten (+, -. *, / ) und weitere entwickeln dürft.
Oder Ihr nehmt eine fertige Bibliothek wie GMP oder NAG.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.02.2009, 02:17 Uhr
0xdeadbeef
Gott
(Operator)


Ah, so ne Scherzgeschichte, wie viele Universenalter ein naiver Cracker bräuchte, um eure Passwörter zu knacken? Kleiner Rat: Zur Sicherheitsabschätzung ist das eine denkbar schlechte Metrik, denn in the wild geht da keiner mit simpler brute force ran - es hat sich inzwischen selbst bei Skriptkiddies rumgesprochen, dass die Mathematik da gegen sie arbeitet.

Ansonsten...ich bin jetzt in der Borland-Bibliothek nicht zuhause, aber mit Standardmitteln ist das durchaus möglich. Zum Beispiel:

C++:
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>

int main() {
  long double d = 3.14159265358979323846e30;
  std::ostringstream os;
  std::string s;

  os << std::fixed << d;
  s = os.str();

  std::cout << s << std::endl;
}


Das wird natürlich hinten ungenau, der Typ hat ja keine unbegrenzte Länge. Wenn Genauigkeit gefordert ist, werdet ihr um die GMP oder etwas vergleichbares nicht herumkommen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: