AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Trunc

Ein Thema von hhcm · begonnen am 19. Apr 2018 · letzter Beitrag vom 22. Apr 2018
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Probleme mit Trunc

  Alt 19. Apr 2018, 13:12
Vielleicht hilft Dir das weiter. Achtung! Keine Fehlerkontrolle!

Delphi-Quellcode:
function EuroToCt (const Euro: Single) : String;
begin
 Str(euro*100:8:2,Result);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
 Memo1.Lines.Add(EuroToCt(1.71));
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#12

AW: Probleme mit Trunc

  Alt 19. Apr 2018, 13:21
Vielleicht hilft Dir das weiter. Achtung! Keine Fehlerkontrolle!
Delphi-Quellcode:
function EuroToCt (const Euro: Single) : String;
begin
 Str(euro*100:8:2,Result);
end;
Das ist doch nur reine Formatierung und hilft nicht, wenn mit c weiter gearbeitet werden soll.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Probleme mit Trunc

  Alt 19. Apr 2018, 13:25
Es sollte eine weitere Möglichkeit zu den bereits genannten Darstellen. Was man damit macht entscheidet jeder selbst, oder?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Probleme mit Trunc

  Alt 19. Apr 2018, 13:25
Mit Deinem Code hast Du dann für andere Werte die Probleme, zB für a=1.13.
Oh mann. Ja, das ist natürlich nicht gewünscht.

Zitat:
Mit round sollte es funktionieren.
Ich habe jetzt mit unterschiedlichsten Werten getestet.
Round scheint das mittel zur wahl.
Chris
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
251 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 08:01
Ich möchte eigentlich nur einen Eurowert in Cent umrechnen und das möglichst ohne Rundungsfehler
Wenn es Dir um korrekte ct Beträge geht solltest Du aber bedenken, dass Delphi nicht kaufmännisch rundet.

Hier ein Artikel dazu:
https://www.delphi-treff.de/tipps-tr...orrekt-runden/
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 09:06
Ich habe zu 99% schon gerundete Beträge. Das Trunc bzw. Round ist nur zur Sicherheit.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#17

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 10:48
PS: EuroToCt -> Delphi-Referenz durchsuchenCurrency
ansonsten seid ihr an Rundungsfehlern selber Schuld
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#18

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 17:11
@hhcm

Vielleicht noch mal klar ausgedrückt: 2 + 2 ist eigentlich 4. Wenn du aber mit Realen Zahlen in Delphi rechnest, kannst du nie sicher sein, dass das Ergebnis auch 4 wird. Die Nachkomma-Zahlen werden irgendwann gerundet, damit sie in die 8 Byte (oder was sonst) passen.

Wenn du den Effekt plastisch sehen willst, und Excel besitzt, kannst du ein kleines Experiment machen. Formatiere zuerst die Spalte A als Zahl (nicht Standard). Gib dann in die Zelle A1 den Wert
Code:
=Pi()
Gib dann in die Zelle A2 den Wert
Code:
=A1*1000
Kopiere dann durch ziehen die Zelle A2 an die 10 Zellen runter. Du wirst erleben, dass Computer standardmäßig keine unendlichen Zahlen kennen, obwohl Pi eine ist.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#19

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 20:00
Vielleicht noch mal klar ausgedrückt: 2 + 2 ist eigentlich 4. Wenn du aber mit Realen Zahlen in Delphi rechnest, kannst du nie sicher sein, dass das Ergebnis auch 4 wird.
Das ist natürlich komplett falsch! Fließkomma-Addition, -Subtraktion und -Multiplikation von Werten mit frac()=0 ist 100% exakt, so lange die Operanden und das Ergebnis innerhalb gewisser Grenzen liegen,bei Single ist das 2^22=4194304, bei Double 2^52 = 4.50..E15 und Extended 2^63=9.22..E18.

Also ist 2+2 = 4 immer erfüllt.

Vernünftiges Arbeiten mit Fließkommazahlen ist kann schon trickreich genug sein, deshalb sollte so ein Unsinn (und vergleichbare Mythen) nicht noch verbreitet werden.
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#20

AW: Probleme mit Trunc

  Alt 20. Apr 2018, 20:42
@gammatester

Natürlich war das Beispiel mit
Code:
2 + 2 nicht immer 4
ein Scherz. Es sollte nur das Problem verdeutlichen. Außerdem gilt
Code:
2 + 2 = 4
als ein Synonym für eine unumstößliche Tatsache, sonst hätte ich 1 + 2 = 3 geschrieben. Du hast die Aussage nur nicht verstanden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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