Autor |
Beitrag |
pyto
Hält's aus hier
Beiträge: 7
|
Verfasst: Mo 03.05.10 17:13
Hi,
Ich suche einen Typ in Delphi der nur genau 2 Nachkommastellen kennt und damit Werte wie 1234,56(€) oder (und das ist wichtig) 1234,5 0(€)ausgeben kann. Er soll also bei einer NKMST noch eine zweite NKMST mit Wert 0 anfügen und es bei Zwei NKMST lassen.
Danke 
_________________ P.S.: Ich nutze Delphi 5 und 7
|
|
FinnO
      
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Mo 03.05.10 17:22
wie wäre es mit runden?
Delphi-Quelltext 1: 2: 3: 4:
| var myval : single; begin myval := trunc(myval*100)/100; end; |
die null musst du dann noch selbst anfügen.
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Mo 03.05.10 17:43
oder nimm einen Integer und teile ihn vor der Anzeige durch 100. Frage mich ob Delphi es erlaubt solche Typen selbst zu erstellen...vermutlich eher nicht, höchstens ne Klasse (umständlich in der Bedienung).
//Edit: achso, um die Null gehts...
Delphi-Quelltext 1:
| str:=inttostr(trunc(myval))+','+inttostr((myval - trunc(myval))*100) |
(oder so ähnlich ^^)
Schreib dir ne procedure dafür. Es gibt aber auch floattostr mit vielen Einstellungsmöglichkeiten (kein Experte dafür ist)
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mo 03.05.10 18:07
WTF?
Delphi-Quelltext 1:
| format('%.2f',[MyNumber]) |
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Mo 03.05.10 20:24
Gibts für Währungen nicht extra den Typ "Currency"???
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 04.05.10 08:52
Theoretisch ja, aber auch dieser kann mehr als 2 Nachkommastellen haben. Der Vorteil von Currency ist, das es genauer ist als andere Gleitkommatypen.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Sinspin
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Di 04.05.10 10:45
Currency ist ein Integer. Also intern werden die Zahlen als Integer behandelt. Bei allen Umwandlungen wird jedoch mit 4 Nachkommastellen gearbeitet (Währungsformat), bei Ausgaben werden davon aber nur 2 dargestellt.
Alle Rechenoperationen mit diesem Typen folgen den Regeln für die Berechnungen von Währungswerten. Die von Gleitkommazahlen bekannten Ungenauigkeiten treten hier nicht auf.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Di 04.05.10 23:14
Das kommt aber auch alle Jahre mal hoch. Nur zur Richtigkeit currency wird intern im Coprozessor gerechnet und erreicht damit relativ natürlich auch keine höhere Genauigkeit als Gleitkommatypen. Vielmehr bildet es die Korrektheit des Coprozessors für ganze Zahlen bis 64Bit um 4 Größenordnungen zu kleineren Werten ab.
|
|