Autor Beitrag
fawkes
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 14.10.03 15:47 
Hallo Expertenvolk,

ich hab da mal ne Frage. Also mein Problem ist. Ich will Zahlen radizieren deren Ergebnis irrational ist, wie zB 2 und dann ausgeben. So sieht es bei mir aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure wurzel;
var
  Ergebnis : PChar;
  wurzel : Extended;
begin
  wurzel := sqrt(2);
  FloatToText(Ergebnis, wurzel,fvExtended,ffGeneral,50,50);
end;

Nur leider gibt der Code zur Laufzeit einen EAccessViolation-Fehler aus. Also Speicherzugriffsverletzung. Hab so gut wie keine Ahnung wieso. Vielleicht wegen der Extended-Variable, die ich erst speichere. Aber die Funktion FloatToText kann nur ne Variable. Ich hoffe ihr könnt mir helfen.

Danke,
fawkes

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
Mari
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Di 14.10.03 16:21 
Wie wär's damit?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Wurzel;
var ergebnis:String;
    wurzel: Extended;
begin
 wurzel := sqrt(2);
 ergebnis := floattostr(wurzel);
end;


Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
fawkes Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 14.10.03 16:43 
Ja das würd gehen.
Nur ich will ein paar mehr Stellen als die, die FloattoStr ausgibt.

Trotzdem Danke
barfuesser
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 324



BeitragVerfasst: Di 14.10.03 17:37 
FloatToStr gibt meines Wissens alle verfügbaren Stellen aus. Wenn Du mehr Stellen wünschst, mußt Du wahrscheinlich die Wurzel stellenweise ausrechnen und das Ergebnis als String zusammenbauen.

barfuesser
Mari
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Di 14.10.03 17:41 
ergebnis := floattostrf(wurzel,ffgeneral,18,18);
Genauer geht es dann aber nicht mehr, da nicht mehr Stellen ausgerechnet werden.

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
fawkes Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 14.10.03 17:48 
Ja das hab ich gerade auch gemerkt(man war ich blöd) und da die Datentypen ja nur maximal 20 Stellen oder so unterstützen steh ich jetzt vor einem Problem.

Wie berechne ich die Wurzel von 2 auf 400 Stellen und mehr.



Hat da irgendjemand ne Ahnung?


Danke,
fawkes
fawkes Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 14.10.03 19:13 
Also ich hab dann mal weiterüberlegt. Eigentlich brauche ich einen Variablentype, welcher Dezimal-Werte unbestimmter Länge verwalten kann. Kennt vielleicht irgendjemand dafür eine Klasse bzw. Komponente?

Das wäre mir sehr hilfreich!

Danke,
fawkes