Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA:

int() 21 Dez 2021 07:26 #1

  • AbsoluteFosback3
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Beiträge: 209
  • Dank erhalten: 117
Moin

Wieso kommt bei int(2,5) zwei heraus? (Doku und Pgm)
Bei bankmäßigem Runden wird doch bei 0,5 aufgerundet, egal was vor dem Komma steht (bei possitiven Zahlen) - dachte ich wenigstens (grübel, grübel)
Das Pgm rechnet int(1,5) = 2
                          int(3,5) = 4
     dann ist doch int(2,5) = 3 und nicht 2
und auch bei 12,5 und 22,5 wird abgerundet, das gilt anscheinend bei jeder 2 vor dem Komma egal ob 12, 102 oder 1002

Fosback

P.S. "bankmäßiges" Runden ist doch wohl "kaufmännisches" Runden, denn über "bankmäßiges" Runden finde ich nichts bei wikipedia
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von AbsoluteFosback3.

int() 21 Dez 2021 14:33 #2

  • Siebald
  • Offline
  • Beiträge: 89
  • Dank erhalten: 26
Hallo,
ich kenne es so, daß beim Runden bei 0,5 auf eine gerade Zahl gerundet wird.

3,5 gibt 4 
und 
2,5 gibt 2

Gruß Frank
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

int() 21 Dez 2021 16:44 #3

  • Soko
  • Sokos Avatar
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 536
  • Dank erhalten: 439
Hallo,

immer der Streit um die Rundungsmethoden. Mir ist natürlich auch das kaufmännische Runden am liebsten
Nach DIN1333.
  • wird abgerundet wenn die Ziffer an der ersten wegfallenden Dezimalstelle eine 0, 1, 2, 3 oder 4 ist.
  • wird aufgerundet, wenn die Ziffer an der ersten wegfallenden Dezimalstelle eine 5, 6, 7, 8 oder 9 ist.
cX5 scheint tatsächlich round-to-nearest-even zu verwenden.

Stefan, kann man da was drehen oder es gar konfigurierbar machen?

Ciao,
Joachim
Zitat aus Wikipedia:Das einfachste Rundungsschema ist das Abschneiden (engl. truncation oder chopping): Eine Zahl wird links eines bestimmten Punktes stehen gelassen, der Rest fallen gelassen. Dadurch wird sie auf die nächstmögliche Zahl abgerundet. Zum Beispiel wird, wenn man auf null Nachkommastellen rundet, aus {\displaystyle 10{,}11_{2}=2{,}75_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/8418760ddd3726a01daf5f3b56aba8cfde8bc78e eine {\displaystyle 10_{2}=2_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/f29e6ffe6b6faf75a3e3f74161291b020cd40a55. Diese Methode ist sehr schnell, sie leidet aber unter einem verhältnismäßig großen Rundungsfehler (im Beispiel beträgt er {\displaystyle 0{,}75_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/5cc3a1115ef109ae46b21a40c71e05b7024e6701). Das Abschneiden ist jedoch eine unverzichtbare Methode in der digitalen  Signalverarbeitung . Als einzige Methode kann mit ihr sicher ein instabiler Grenzzyklus durch Rundungsfehler in  digitalen Filtern  verhindert werden.Als weiteres Rundungsschema wird ebenfalls das kaufmännische Runden verwendet (engl. round-to-nearest). Man addiert dabei vor dem Runden {\displaystyle 0{,}1_{2}=0{,}5_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/c57f249a44d55bcf65b5bb8b3d34c0c1f80f18f1 auf die zu rundende Zahl und schneidet danach ab. Im Beispiel hieße das, dass {\displaystyle 2{,}75_{10}+0{,}5_{10}=3{,}25_{10}=11{,}01_{2}}https://wikimedia.org/api/rest_v1/media/math/render/svg/9e63c98595abd1b2cb1f3006b1b1ed51822ff51b abgeschnitten wird zu {\displaystyle 11_{2}=3_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/4d53e75a88618b107a88ae0ce58e4c663f2f4a45. Der Fehler beträgt hierbei nur {\displaystyle 0{,}01_{2}=0{,}25_{10}}https://wikimedia.org/api/rest_v1/media/math/render/svg/4d815fde1493f2f53090ec13fe20e49e0cedab58. Allerdings ist dieses Runden positiv verzerrt.Daher zieht man das mathematische Runden in Betracht ( englisch  round-to-nearest-even), das bei Zahlen, die auf {\displaystyle \ldots {,}\ldots 5_{10}=\ldots {,}\ldots 1_{2}}https://wikimedia.org/api/rest_v1/media/math/render/svg/66d7cb6ffc617323cae16e5f4899b71707193d0a enden, jeweils zur nächsten geraden Zahl rundet. Dieses Rundungsverfahren ist im IEEE-754-Standard vorgesehen. Alternativ kann auch auf die nächste ungerade Zahl gerundet werden ( englisch  round-to-nearest-odd).
de.wikipedia.org/wiki/Rundung#Symmetrisches_Runden

Siehe auch z.B. dieses von PTB veröffentlichte Dokument:
www.ptb.de/cms/fileadmin/internet/fachab...4.Rundungsregeln.pdf

Ciao,
Joachim
Folgende Benutzer bedankten sich: daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

int() 22 Dez 2021 06:33 #4

  • AbsoluteFosback3
  • Offline
  • Gold Boarder
  • Gold Boarder
  • Beiträge: 209
  • Dank erhalten: 117
Moin

Für diejenigen, die bei dem Text vom Soko nichts kapieren:
cX verwendet also das "symmetrische Runden" (siehe Link vom Soko zu Wikipedia symmetrisches Runden)
  1. Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 0, 1, 2, 3 oder 4, so wird abgerundet.
  2. Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 5 (gefolgt von weiteren Ziffern, die nicht alle null sind), 6, 7, 8 oder eine 9, so wird aufgerundet.
  3. Ist die Ziffer an der ersten wegfallenden Dezimalstelle lediglich eine 5 (oder eine 5, auf die nur Nullen folgen), so wird derart gerundet, dass die letzte beizubehaltende Ziffer gerade wird („Gerade-Zahl-Regel“).
Fosback
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

int() 22 Dez 2021 11:43 #5

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1228
  • Dank erhalten: 1756
Hallo,. Leute!

Dieses Runden auf die nächste gerade Zahl ist in der Praxis wirklich nicht recht nachvollziehbar, war aber in cX5 so drin (bei Int() und Rdn()).
Wird nun geändert, so dass das Verhalten "AwayFromZero" verwendet wird, also so wie oben beschrieben: x,5 wird immer hochgerundet.

Danke für den Hinweis!

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker, AbsoluteFosback3

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

Community

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden