![]() |
größere reele Typen (> extended)
Hallo,
ich suche derzeit für ein kleines mathematisches Programm eine Implementierung eines reelen Typen, mit wesentlich mehr Nachkommastellen als z.B. der Extended-Typ. Das ganze soll dabei aber noch so einfach zu handeln sein wie ein normaler Datentyp. Gibt es da was kostenloses für Delphi? |
Re: größere reele Typen (> extended)
|
Re: größere reele Typen (> extended)
Zitat:
Ich suche halt eine Möglichkeit, mit der ich wesentlich "längere" Zahlen (nicht nur Nachkommastellen) nutzen kann. Dazu muss natürlich noch passende mathematische Methoden für z.B. Multiplikation geben... |
Re: größere reele Typen (> extended)
Bei den Jedis gibts - glaube ich - welche oder eben negaHs DEC Math-Unit
|
Re: größere reele Typen (> extended)
Zitat:
|
Re: größere reele Typen (> extended)
Keiner eine Idee?
|
Re: größere reele Typen (> extended)
Zitat:
Man könnte die Zahlen auch in Strings abspeichern und mit den Strings rechnen. Dafür müsste man dann allerdings alle Rechenoperationen selbst implementieren, und das kann ziemlich umständlich werden, wenn man dann mehr machen will als nur Grundrechenoperationen (Addition, Subtraktion, Multiplikation, Division). Deshalb ist es wohl besser, die Komponenten vom JEDI zu nehmen, oder die Mathe-Unit von Hagen. MfG Binärbaum |
Re: größere reele Typen (> extended)
Zitat:
Auch deine zweite Forderung nach Einfachheit der Anwendung erfüllt DECMath:
Delphi-Quellcode:
Klar, du müsstest noch einige Spezialfunktionen selber basteln zb. Wurzel usw. Allerdings hast du bei den IRational einen entscheidenden Vorteil gegenüber jedem Fließkommadatentyp -> sie haben immer eine wesentlich höhere Genauigkeit, in fact genauer geht es garnicht mehr :) Fließkommadatentypen sind wesentlich komplexer in der Programmierung ermöglichen dann aber eine enfachere Anwendung weil man einmal die Gesamtgenauigkeit festlegen kann und dann seine Formel reinhämmert. Bei IRational wäre das im Grunde ebenso einfach und denoch muß man bei seinen Formeln genauer auf die erzielten Genauigkeiten achten.
var
A,B,C: IRational; begin NSet(A, 1, 3); // A = 1/3 NSet(B, 4, 5); // B = 1/5 NSet(C, 0.12345678); NMul(A, C); NAdd(A, B); WriteLn( NStr(A) ); // auf Bruch zugreifen WriteLn( NStr(A.N) ); // Numerator WriteLn( NStr(A.D) ); // Denumerator end; Da man wie oben gesehen auf den Nummerator und Denummerator des Bruches Zugriff hat kann man jede Formel auch auf die Anwendung von Ganzzahlen hin optimieren und umstellen und so die maximal höchste Auflösung/Genauigkeit erreichen. Ansonsten, bevor du mit DECMath oder den JEDI's (wobei ich nicht weis wo die eine arbitrary Integer/Floatingpoint Library haben sollen ?) was anfängst solltest du dich mal im C++,C#,JAVA Sektor umschauen. Es gibt dort eine wesentlich größere Auswahl. ApFloat kann ich empfehlen. Gruß Hagen |
Re: größere reele Typen (> extended)
Hi,
Zitat:
Zitat:
Zitat:
Vielen Dank, schon mal Hagen. Aber eine Sache noch, kannst du die aktuelle Version noch mal hochladen oder mir sagen, wo es sie zum Download gibt? |
Re: größere reele Typen (> extended)
Hier in der DP, suche mal nach DECMath. Ich habe Versionen für D5,D6,D7 gepostet.
Gruß hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz