AGB  ·  Datenschutz  ·  Impressum  







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

RoundTo bei 0 ist nicht 0,00 :(

Ein Thema von Karstadt · begonnen am 7. Apr 2006 · letzter Beitrag vom 8. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 09:48
Hallo. Wie kann ich die Zahl 0 als 0,00 darstellen ? Danke
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 09:50
schau dir mal den Befehl "Format" an:
Format('%7.2f',[0]);
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#3

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 09:58
Zitat von Angel4585:
schau dir mal den Befehl "Format" an:
Format('%7.2f',[0]);
Damit hättest du aber 3 Leerzeichen vor deinem String.

Besser ist:
Format('%0.2f', [0]); Dann sind keine Leerzeichen davor und es wird trotzdem 0,00 (oder 0.00 je nach Einstellung von Windows) ausgegeben
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 10:01
Oder:
Trim(Format('%7.2f',[0])); damit gehts auch
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#5

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 10:09
Klar, aber die Frage was schneller ist, solltest du selber beantworten können
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 22:52
Die Beispiele mit dem konstanten Wert 0 würden leider nicht funktionieren, da die Format-Funktion eine kleine Falle enthält. Bei der Übergabe der Werte muß sehr genau darauf geachtet werden, daß der Datentyp des Werts zum zugehörigen Platzhalter im Formatstring paßt. In diesem Fall ist das nicht so: Im Formatstring steht ein Float-Platzhalter, übergeben wurde ein Integer-Wert. Das Ergebnis ist ein Laufzeitfehler!

Richtig wäre somit:

Format('%0.2f', [0.0]); Bei der Übergabe von Integer-Variablen kann man den Wert durch eine (ansonsten unsinnige) Multiplikation mit 1.0 konvertieren:

Format('%0.2f', [1.0 * IntWert]); Das Format "%n", mit dem große, ganzzahlige Werte durch das Einfügen von Tausendertrennzeichen etwas lesbarer gestaltet werden können, erwartet übrigens ebenfalls einen Real-Wert.

Als Alternative zur Format-Funktion bietet sich die Funktion FormatFloat aus der Unit SysUtils an.

Gruß Hawkeye
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 23:00
Zitat von DevilsCamp:
Klar, aber die Frage was schneller ist, solltest du selber beantworten können
Ach so, es geht gar nicht um korrekte Darstellung, sondern um Performance?

Erster!
MyString := '0,00'; Schneller gehts nicht!
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 23:03
Streber!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 23:18
es gibt auch noch die Funktion FormatFloat. Der übergibt man einfach als Format "0.00" und als zweiten Parameter die Zahl (in diesem Fall 0) und schon passt alles. da braucht man sich auch nicht drum kümmern ob der zweite Parameter ein Float oder Integer ist etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: RoundTo bei 0 ist nicht 0,00 :(

  Alt 7. Apr 2006, 23:23
*räusper*

Beitrag #6, ziemlich weit unten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:16 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