🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: maus.lang.tpascal
Article #29

Re: Real-to-String

#29
From: Stefan Fiedler
Date: Fri, 28 Nov 1997 00:00
73 lines
2667 bytes
On 27 Nov 1997 20:33:00 +0200, Mad@nanobyte.suomi.bonbit.org (Martin
Suefke) wrote:

>Du schriebst etwas zum Thema "Re: Real-to-String",
>worauf es einer Antwort bedarf !   Hier ist sie:
lass hoehren! ;)

>>Ich habe da mal eine etwas aufwenigerere Routine geschrieben, um diesem
>>(zeitweise ledigen) 12E9 Codierungen (also die Exponentendarstellung) bei
>            ^^^^^^^sonst verheiratet ?  :-)
 :)))))  ich habs leider zu spaet gesehen! ;)

>
>>der normalen Str-Funktion zu entgehen. Sie ist Teil der
>
>Probier's doch mal mit sowas wie  " :10:5 " hinter einer Zahl anzugeben.
Das iss mir aber viel zu unflexibel. ;))
Jedenfalls macht meine Routine aus der Real mittels Str einen String und
formatiert diesen dann um. Un das funktioniert ziemlich gut. :)

Ist zwar nicht sonderlich gut geschrieben (weil ewig alt) ..... aber:

---schnipp---

function realstr(r : real) : string;
var b   : Byte;
    b2  : Byte;
    i   : Integer;
    st  : array[1..3] of string[50];
begin
 str(r,st[1]);
 while st[1][1]=' ' do begin
  st[1]:=copy(st[1],2,length(st[1])-1);
 end;
 b:=pos('.',st[1]);
 st[2]:=copy(st[1],1,b-1);
 st[2]:=st[2]+copy(st[1],b+1,length(st[1])-(b+4));
 val(copy(st[1],length(st[1])-1,2),b2,i);
 if st[1][length(st[1])-2]='+' then begin
   inc(b,(b2-1));
   st[2]:=copy(st[2],1,b)+'.'+copy(st[2],b+1,length(st[2])-(b+2));
 end else begin
   if st[2][1]<>'-' then begin
     st[3]:='';
     for b:=1 to (b2-1) do st[3]:=st[3]+'0';
     st[2]:='0.'+st[3]+st[2];
   end else begin
     st[2]:=copy(st[2],2,length(st[2])-1);
     st[3]:='';
     for b:=1 to (b2-1) do st[3]:=st[3]+'0';
     st[2]:='-0.'+st[3]+st[2];
   end;
 end;
 while st[2][length(st[2])]='0' do dec(st[2][0]);
 if st[2][length(st[2])]='.' then dec(st[2][0]);
 realstr:=st[2];
end;

begin
 writeln(realstr(pi));
end.

---schnapp--

bye!



--

Stefan Fiedler -  fps@flix.de
[http://come.to/fps/]
Technical Details
Message-ID: <347ec3d0.14880695@news.uni-erlangen.de>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <347C1FF4.CDC6ED3@akern.inka.de> <347c568a.928992@news.uni-erlangen.de> <6ifNQKDfqUB@nanobyte.suomi.bonbit.org>

Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit
X-Google-Thread: f8a86,6cde14bba7b55fff
X-Google-Attributes: gidf8a86,public
X-Google-Thread: 10263e,6cde14bba7b55fff
X-Google-Attributes: gid10263e,public
X-Google-Thread: 110930,6cde14bba7b55fff
X-Google-Attributes: gid110930,public
From: fps@flix.de (Stefan Fiedler)
Subject: Re: Real-to-String
Date: 1997/11/28
Message-ID: <347ec3d0.14880695@news.uni-erlangen.de>
X-Deja-AN: 293395121
References: <347C1FF4.CDC6ED3@akern.inka.de> <347c568a.928992@news.uni-erlangen.de> <6ifNQKDfqUB@nanobyte.suomi.bonbit.org>
Organization: Regionales Rechenzentrum Erlangen, Germany
Newsgroups: maus.lang.tpascal,fido.pascal-ger,z-netz.sprachen.pascal,z-netz.sprachen.pascal