AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl als Bruch speichern

Ein Thema von dino · begonnen am 21. Sep 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#1

Zahl als Bruch speichern

  Alt 21. Sep 2007, 13:15
Hi DP
ich hätte da mal ne Frage und hoffe ihr könnt mir dabei helfen

es geht nämlich um folgendes: ich hab ne real variable und wenn ich z.B. 2 durch 3 teile dann muss der ja irgendwann runden...
nun hab ich ein Programm in dem es erforderlich ist, dass er eben nciht rundet...
unendlich viele nachkommastellen kann ich gleich vergessen, schon klar!
was cih bräuchte wäre dann wohl statt real etwas, was statt zu runden bruchwerte annimmt...

kennt ihr da sowas?
(oder ahbt ihr ne Idee wie ichs lösen könnte?)

danke im vorraus! lg Dino
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: genauen wert

  Alt 21. Sep 2007, 13:39
Bei "2 geteilt durch 3" wirst du vermutlich kein Rundungsproblem bekommen.
Bei "1245 durch 524" schon eher.

Versuch doch mal den grössten Float-Datentyp für die Rechnung zu verwenden.
Anschliessend castest Du auf einen kleineren Float-Datentyp.
Dann könnte sein, dass nur "abgeschnitten" wird.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#3

Re: genauen wert

  Alt 21. Sep 2007, 13:43
2 durch 3 war vorher 0.66[..]667 so wie du es sagst wäre es ja dann 0.66[..]66 ...

das stimmt aber ja dann ebenfalls nciht...

also nur abgeschnitten ist mir für den zweck schon zu viel, sorry

der müsste schon dann halt den wert 2/3 annehmen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: genauen wert

  Alt 21. Sep 2007, 13:47
Dann musst du dir die Zahlen eben als Bruch merken (oder als Wurzel, wenn du alle reelen Zahlen haben willst).
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#5

Re: genauen wert

  Alt 21. Sep 2007, 13:47
Schreibe dir doch eine Klasse die mich Brüchen arbeiten kann oder suche dir eine schon fertige aus (ich weiß gerade nicht ob es in der DP schon fertige Klassen dafür gibt).


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#6

Re: genauen wert

  Alt 21. Sep 2007, 14:17
es sind wirklich nur brüche und keine wurzeln...

wie das mt der klasse geht weiss ich ncoh net so ganz

klassen wären z.B. real, extended, single, integer u.s.w., oder?

also was in meinem programm (extrem vereinfacht) passiert ist folgendes:

Delphi-Quellcode:
var
  xr,yr,fr:real;
  i,fori:Integer;
for fori := 0 to 1000 do
begin
  fr:=-xr/i;
  xr:=xr+(i*fr);
  yr:=yr+(i*fr);
  // und hier zwischen passiert halt auch ncoh einges, was aber mit dem Problem wenig zu zun hat
end;
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#7

Re: genauen wert

  Alt 21. Sep 2007, 14:35
also ich denke ich brauche für diesen zweck einfach ne eigene klasse

wo finde ich informationen dazu wie ich mir eine mache oder ob es schon eine richtige für mcih gibt?

DP-Suche schon klar, aber wenn ich z.B. "eigene klasse schreiben" eingebe suche ich mich duselig...
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: genauen wert

  Alt 21. Sep 2007, 14:51
Du brauchst eigentlich nur soetwas:
Delphi-Quellcode:
type
  TBruch = class(TObject);
  public
    zaehler,
    nenner: integer; // Oder Int64 bei sehr großen Zahlen

    procedure add(bruch: TBruch);
    procedure sub(bruch: TBruch);
    procedure mul(bruch: TBruch);
    procedure divide(bruch: TBruch); // div geht nicht, weil das ja ein geschützter begriff ist...
  end;
Die Prozeduren zu den Grundrechenarten musst du natürlich noch implementieren. Das dürfte aber wohl nicht allzu kompliziert sein und sich mit Mathe aus der sechsten Klasse lösen lassen.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: genauen wert

  Alt 21. Sep 2007, 15:03
Man sollte natürlich noch eine Methode "kürzen" implementieren, dass man nicht so schnell an die Grenzen von integer kommt
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#10

Re: genauen wert

  Alt 21. Sep 2007, 15:08
@sirius slbstverständlich

nun sagt er aber "= erwartet aber zaehler gefudnen "
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz