![]() |
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 ? |
Re: PASCAL : FloatToStrF Ersatz
Ja ... int( x * 1000000 ) / 1000000 bzw. anpassen, dass die möglichen Nachkommastellen nicht abgeschnitten werden.
|
Re: PASCAL : FloatToStrF Ersatz
Zitat:
![]() |
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... |
Re: PASCAL : FloatToStrF Ersatz
Hallo,
geht das denn nicht so?...
Delphi-Quellcode:
c -> in diesem Beispiel der Wert in einer Variablen
formatfloat('#,##0.##',c)
.## -> Anzahl der "#"-Zeichen bestimmt die Stellenanzahl hinter dem Komma Dieses Beispiel wäre mit Tausendertrennzeichen... Gruß Jürgen |
Re: PASCAL : FloatToStrF Ersatz
was ist mit:
Code:
uses SysUtils;
var Ergebnis:Real; Text:String; begin Ergebnis := 1/3; Text := Format('%.2f',[Ergebnis]); end; |
Re: PASCAL : FloatToStrF Ersatz
es hat sich erledigt :D
Man kann eigentlich doch FloatToStrF benutzen.. wir machens jetzt so :
Delphi-Quellcode:
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 -.-
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. |
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: |
Re: PASCAL : FloatToStrF Ersatz
grml -.-
das war auch nur ein (schlechtes) Beispiel -.- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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