Article View: maus.lang.tpascal
Article #29Re: Real-to-String
From: Stefan Fiedler
Date: Fri, 28 Nov 1997 00:00
Date: Fri, 28 Nov 1997 00:00
73 lines
2667 bytes
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-mailReferences:
<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