AGB  ·  Datenschutz  ·  Impressum  







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

RoundX erhalte immer nur eine Nachkommastelle

Ein Thema von capo · begonnen am 7. Mär 2009 · letzter Beitrag vom 7. Mär 2009
Antwort Antwort
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 15:30
Ich möchte mit folgendem Code zwei Nackommastellen erhalten, klappt aber nicht erhlate immer nur eine. Seht ihr einen Fehler?
Gruss vom Capo

Delphi-Quellcode:
function RoundUp(X: Extended): Extended;
begin
  Result := Trunc(X) + Trunc(Frac(X) * 2);
end;


function RoundX(const Value: Extended; const nk: Integer): Extended;
var
  multi: Extended;
begin
  multi := IntPower(10, nk);
  Result := RoundUp(Value * multi) / multi;
end;

Delphi-Quellcode:
...
Summeausgabe := (floattostr(RoundX(Summe, 2)));
...
Hotte
  Mit Zitat antworten Zitat
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#2

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 15:44
wie wäre es mit der RoundTo-Funktion aus der Unit Math?
RoundTo(Summe,-2); aber bei mir klappt dein code, nur da durch intpower ja so oder so die unit math einbinden musst.
kA welchen wert bei dir summe hat, vllt kommt dann sowas wie 4,10 raus und er schreibt 4,1 aber kA
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 15:49
Hallo,

danke aber anstatt 634,50 wird damit auch 634,5 angezeigt.
showmessage(floattostr(RoundTo(634.50 ,-2)))
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 15:54
Wenn du einen so formatierten String haben willst, dann musst du Format benutzen. RoundTo usw. nimmt zwar die Nachkommastellen weg, aber das hat ja keinen Einfluss auf die folgende Umwandlung in einen String furch FloatToStr.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 16:31
Ahhhh, mit Format habe ich noch nie was gemacht.
Habe da gerade etwas gefunden.
Wie müßte ich das anpassen?
Format('%6.0n', [wert]);
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 16:35
habs...
showmessage(Format('%s', ['634.50'])); Klappt aber in meinem Fall nicht:

Summeausgabe :=(Format('%s', [Summe]));
Zitat:
---------------------------
Project1
---------------------------
Format '%s' ungültig oder nicht kompatibel mit Argument.
---------------------------
OK
---------------------------
[EDIT so muss es sein]
 Summeausgabe :=(Format('%f', [Summezahl]));
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 16:38
Wie wäre es mit %0.2f für 2 Nachkommastellen. Mehr zu den Formaten findest du ausführlich in der Hilfe.

// EDIT:
%s ist ein Platzhalter für einen String und nicht eine Zahl. Aber auch das steht in der Hilfe...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: RoundX erhalte immer nur eine Nachkommastelle

  Alt 7. Mär 2009, 16:40
Danke habe es auch gerade gesehen
Hotte
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:22 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