effizientes Rechnen mit gerundeten Werten?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von Timm Thaler »

Alternativer Ansatz: Statt Double Currency verwenden. Das ist quasi Fixpunkt mit 4 eingebauten Nachkommastellen. Musst Du schauen, ob Dir daas reicht.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:
Do 30. Apr 2020, 10:24
Alternativer Ansatz: Statt Double Currency verwenden. Das ist quasi Fixpunkt mit 4 eingebauten Nachkommastellen. Musst Du schauen, ob Dir daas reicht.
Das bringt ihm überhaupt nichts. Es geht nicht um die interne Genauigkeit eines Datentypes, sondern wie man mit den Widersprüchen umgeht, die sich durch absichtliche Rundung umgehen. Die genannten Zahlen sind wahrscheinlich in Metern gemessen. Wenn er die Längen in Zentimetern angeben würde, könnte man sogar mit Integern rechnen: 11*20*106=23320, und das Problem bliebe bestehen, wenn man nur die Tausender angeben will. 2*23320 = 46640, also 47 Tausender, aber 23 Tausender *2 = 46 Tausender.

Ich denke, für die Frage, wie man mit gerundeten Ergebnissen umzugehen hat, wird es wahrscheinlich irgendwelche Richtlinien geben. Es kann nicht sein, dass sich jeder Betrieb da seine eigenen Regeln ausdenkt. Siehe Mehrwertsteuer. Durch geschickte Rundung kann man da in Summe einiges sparen. Kleinvieh macht auch Mist, und im Supermarkt sind die Kassen auch so programmiert, dass das Gewicht der Obsttüten mit 0 angenommen wird.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von m.fuchs »

wp_xyz hat geschrieben:
Do 30. Apr 2020, 10:40
Ich denke, für die Frage, wie man mit gerundeten Ergebnissen umzugehen hat, wird es wahrscheinlich irgendwelche Richtlinien geben. Es kann nicht sein, dass sich jeder Betrieb da seine eigenen Regeln ausdenkt.
Mit Sicherheit wird das in irgendeiner Norm behandelt.
wp_xyz hat geschrieben:
Do 30. Apr 2020, 10:40
und im Supermarkt sind die Kassen auch so programmiert, dass das Gewicht der Obsttüten mit 0 angenommen wird.
Genau damit zeigt sich aber das wirklich Problem. Das Obsttütengewicht einfach auf das Warengewicht aufzuschlagen ist in Österreich erlaubt in Deutschland hingegen eine Ordnungswidrigkeit.

Auf das Programm des OP umgewandelt wird er um eine Einstellungsmöglichkeit des Rundungsverhaltens nicht herumkommen. Dann liegt das Problem aber auch beim Kunden.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von af0815 »

m.fuchs hat geschrieben:
Do 30. Apr 2020, 11:04
wp_xyz hat geschrieben:
Do 30. Apr 2020, 10:40
und im Supermarkt sind die Kassen auch so programmiert, dass das Gewicht der Obsttüten mit 0 angenommen wird.
Genau damit zeigt sich aber das wirklich Problem. Das Obsttütengewicht einfach auf das Warengewicht aufzuschlagen ist in Österreich erlaubt in Deutschland hingegen eine Ordnungswidrigkeit.
In Österreich laut Wirtschaftskammer (Stand 2018), nach dem Gesetz auch nicht - Pflicht zur Tara Berücksichtigung. Siehe https://www.wko.at/branchen/handel/lebe ... setz1.html
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von sstvmaster »

Könnte die BigDecimal Unit von BeniBela da eventuell weiterhelfen?
https://www.benibela.de/sources_de.html#bigdecimalmath
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von Winni »

mschnell hat geschrieben:
Do 30. Apr 2020, 09:12
Winni hat geschrieben:
Mi 29. Apr 2020, 23:55
Gerade für Deine Zwecke sind Fixpunktwerte viel zu ungenau, wenn Du Höhe x Breite x Tiefe rechnen musst.
Nicht wenn die Einheit µm, Ångström, pm, oder Plank-Länge ist.
-Michael
Das hab ich mir schon gedacht, dass fliegermichel seine Holzteile in Ångström misst.
Kopfschüttel.

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6200
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: effizientes Rechnen mit gerundeten Werten?

Beitrag von af0815 »

Die Genauigkeit nutzt nichts, die Frage ist eher ob man nach der ersten Kalkulation der Teile nicht einen Korrekturrun machen muß mit den tatsächlichen Maßen und einer fixen Logik. Weil die muß es jetzt ja auch explizit gegeben haben.
Muß man ja auch dann machen wenn es Teile in fixer Größe gibt und man halt die Teile quasi einpassen muß.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten