Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   PASCAL : FloatToStrF Ersatz (https://www.delphipraxis.net/53799-pascal-floattostrf-ersatz.html)

Neutral General 22. Sep 2005 17:01


PASCAL : FloatToStrF Ersatz
 
Ein Freund hat mich gefragt ob ich ihm bei nem Delphi-Problem helfen kann.
Er hat das Problem das wenn er eine Zahl durch eine andere teilt die Zahl tausende Nachkommastellen hat. Ich hab natürlich StrToFloatF vorgeschlagen, musste dann aber feststellen das er Pascal bzw Non-VCL programmiert.... Gibt es da einen ähnlichen Befehl ?

Sir Rufo 22. Sep 2005 17:19

Re: PASCAL : FloatToStrF Ersatz
 
Ja ... int( x * 1000000 ) / 1000000 bzw. anpassen, dass die möglichen Nachkommastellen nicht abgeschnitten werden.

Union 22. Sep 2005 17:23

Re: PASCAL : FloatToStrF Ersatz
 
Zitat:

Zitat von Neutral General
Ein Freund hat mich gefragt ob ich ihm bei nem Delphi-Problem helfen kann.
Er hat das Problem das wenn er eine Zahl durch eine andere teilt die Zahl tausende Nachkommastellen hat. Ich hab natürlich StrToFloatF vorgeschlagen, musste dann aber feststellen das er Pascal bzw Non-VCL programmiert.... Gibt es da einen ähnlichen Befehl ?

Delphi-Referenz durchsuchenFormatFloat

Neutral General 22. Sep 2005 17:25

Re: PASCAL : FloatToStrF Ersatz
 
:wiejetzt:

Das Problem ist ja er will nicht :

3,51218621214654165416514E31

sondern

3,51

...

EDIT : Und das kann man soweit ich das in der Hilfe gelesen habe nicht mit FormatFloat machen...

juergen 22. Sep 2005 17:44

Re: PASCAL : FloatToStrF Ersatz
 
Hallo,
geht das denn nicht so?...
Delphi-Quellcode:
formatfloat('#,##0.##',c)
c -> in diesem Beispiel der Wert in einer Variablen
.## -> Anzahl der "#"-Zeichen bestimmt die Stellenanzahl hinter dem Komma
Dieses Beispiel wäre mit Tausendertrennzeichen...

Gruß Jürgen

C.Brosius 22. Sep 2005 17:51

Re: PASCAL : FloatToStrF Ersatz
 
was ist mit:

Code:
uses SysUtils;
var Ergebnis:Real;
    Text:String;
begin
  Ergebnis := 1/3;
  Text := Format('%.2f',[Ergebnis]);
end;

Neutral General 22. Sep 2005 18:01

Re: PASCAL : FloatToStrF Ersatz
 
es hat sich erledigt :D
Man kann eigentlich doch FloatToStrF benutzen.. wir machens jetzt so :


Delphi-Quellcode:
program Program9;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var zahl1, zahl2, summe, differenz, produkt: integer;
     quotient : String;
begin
writeln('Grundrechenarten');
write('Zahl1:');readln(zahl1);
write('zahl2:');readln(zahl2);
summe:=(zahl1+zahl2);
differenz:=(zahl1-Zahl2);
produkt:=(zahl1*zahl2);
quotient:= FloatToStrF(zahl1/zahl2,ffGeneral,3,5);
writeln('summe:' ,summe);
writeln('differenz:' ,differenz);
writeln('produkt:' ,produkt);
writeln('quotioent: +' + quotient);
If Zahl2=0 Then writeln('division durch 0 verboten')
Else quotient:= FloatToStrF(Zahl1 / zahl2,ffGeneral,3,5);
readln;
end.
EDIT : obwohl mir aufgefallen das inner Konsolenanwendung FloatToStrF nicht so ganz richtig funktioniert.. die Anzahl der Nachkommastellen lässt sich da nicht wirklich geregelt einstellen -.-

Ultimator 22. Sep 2005 19:27

Re: PASCAL : FloatToStrF Ersatz
 
3,51218621214654165416514E31

soll zu

3,51 werden? :shock:

Du weißt aber schon, dass 3,51218621214654165416514E31 = 3,51218621214654165416514 * 10^31 ist? :shock:

Neutral General 22. Sep 2005 19:27

Re: PASCAL : FloatToStrF Ersatz
 
grml -.-

das war auch nur ein (schlechtes) Beispiel -.-


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 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