AGB  ·  Datenschutz  ·  Impressum  







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

Extended mit mehr als 18 Stellen

Ein Thema von blackfoxx · begonnen am 1. Nov 2005 · letzter Beitrag vom 1. Nov 2005
Antwort Antwort
Seite 1 von 3  1 23      
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#1

Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 11:59
Hi Leutz,
Ich möchte einen Extended Wert mit FloatTostrF in eine reine Zahl Formatieren. Das funktioniert aber nur bis 18 Stellen. Was mache ich denn, wenn ich aber mehr als 18 als reine Zahl anzeigen möchte?
Danke schonmal..

Greetz BlackFoXX
Jonas Schwartze
Nichts ist unmöglich, nur mathematisch unwahrschienlich!
@LG LM70 Express
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#2

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:03
mehr als 18 stellen wird ein extended eh nicht haben.

edit: ok, ich hab gegoogelt und extended soll etwa 19 stellen hinkriegen. mehr aber auch nicht.

edit:
http://www.guidogybels.net/index.html?floats.html
ein extended hat 64 bit genauigkeit (rest ist exponent) und damit 19.266 dezimalstellen genauigkeit
Christoph
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:08
sonst musst du es eben selber schreiben...

Delphi-Quellcode:
function floattostr(x:extended;kommastellen:integer):string;
var
  b:extended;
  i:integer;
begin
  b:=x;
  if b<0 then begin
    b:=-b;
    result:='-';
  end else
    result:='';
  result:=result+inttostr(trunc(b))+',';
  b:=b-trunc(b);
  for i:=1 to kommastellen do begin
    b:=b*10;
    result:=result+inttostr(trunc(b));
    b:=b-trunc(b);
  end;
end;
(getestet+funktioniert)

für große Zahlen natürlich unbrauchbar, da die Funktion keine Schreibweise "17,793479823789e18" hinkriegt.
Michael Enßlin
  Mit Zitat antworten Zitat
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:12
Laut Delphi Hilfe ist der maximale Wert von Extended 1.1*10^4932 bei 8 Byte Größe und 1920 signifikanten Stellen.
Es sind also weitaus mehr als 18 Stellen oder?
Nur wie bekomme ich die in meinen String?
Jonas Schwartze
Nichts ist unmöglich, nur mathematisch unwahrschienlich!
@LG LM70 Express
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:14
ich hab dir gerade oben eine Funktion hingeschrieben. Die geht auch. Aber ein Extended-Wert hat 10 Byte, da passen niemals 1920 Signifikante Stellen rein.

Delphi-Quellcode:
function floattostr(x:extended;kommastellen:integer):string;
var
  b:extended;
  i:integer;
begin
  b:=x;
  if b<0 then begin
    b:=-b;
    result:='-';
  end else
    result:='';
  result:=result+inttostr(trunc(b))+',';
  b:=b-trunc(b);
  for i:=1 to kommastellen do begin
    b:=b*10;
    result:=result+inttostr(trunc(b));
    b:=b-trunc(b);
  end;
end;
wenn du z.B. Pi auf 10^20 Stellen genau berechnen willst, kommst du eben nicht drumrum einen neuen Typ zu schreiben oder so.
Michael Enßlin
  Mit Zitat antworten Zitat
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:23
naja..
Stand eben in der Hilfe. Ich werd mal den Code testen. Danke.

Greetz BF
Jonas Schwartze
Nichts ist unmöglich, nur mathematisch unwahrschienlich!
@LG LM70 Express
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#7

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:25
das heisst nicht "1920" sondern "19-20"...
Christoph
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:26
ja, so klingt es auch sinnvoller...
Michael Enßlin
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:27
Zitat von blackfoxx:
Laut Delphi Hilfe ist der maximale Wert von Extended 1.1*10^4932 bei 8 Byte Größe und 1920 signifikanten Stellen.
Es sind also weitaus mehr als 18 Stellen oder?
Nur wie bekomme ich die in meinen String?
Das ist ein Schreibfehler in der D2005-OH. Es sollte "19 - 20" heißen .

Für (theoretisch) unbegrenzt viele Nachkommastellen gibt's den genialen IInteger von Hagen: http://www.delphipraxis.net/internal...=106306#106306

[edit]Zu langsam ... [/edit]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Extended mit mehr als 18 Stellen

  Alt 1. Nov 2005, 12:28
Kurze Zwischenfrage eines Dummen: Wie schreibt man einen neuen Typ? Also wie man Typen deklariert ist mir klar, aber wie kann ich einen neuen Zahlentyp deklarieren? Muss ich da mit Assembler arbeiten?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 05:44 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