Probleme mit format

Hallo zusammen,

ich habe ein Rundungsproblem mit der format Anweisung.
Ich habe die Summe 107,6749, die Anweisung “format(Summe,“#.##“)” ergibt in xojo 107,67, müsste aber m.E. aufgerundet 107,68 ergeben. Welchen Gedankenfehler mache ich hier? Danke vorab für eure Infos,

VG
Peter

107,6749 = 107,67
107,6751 = 107,68

Haben Sie sich die Ceil (und Floor)-Befehle angesehen?

Beim kaufmännischen Runden wird die erste “wegfallende” Dezimalstelle herangezogen:

Kaufmännisches Runden[Bearbeiten | Quelltext bearbeiten]

Das Kaufmännische Runden (nicht negativer Zahlen) geschieht wie folgt:[2]

  • Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 0, 1, 2, 3 oder 4, dann wird abgerundet.
  • Ist die Ziffer an der ersten wegfallenden Dezimalstelle eine 5, 6, 7, 8 oder 9, dann wird aufgerundet.

Diese Rundungsregel wird durch die Norm DIN 1333 beschrieben. Das Runden wird so auch häufig bereits in der Grundschule gelehrt.

Beispiele (jeweils Rundung auf zwei Nachkommastellen):

  • 13,3749… € ≈ 13,37 €
  • 13,3750… € ≈ 13,38 €

https://de.wikipedia.org/wiki/Rundung

2 Likes

Danke für die Infos!
Ich habe vom Kunden aber noch ein Bespiel bekommen:

320.625 wird in Xojo bei mir mit der Format-Anweisung auf 2 Stellen mit 320,62 berechnet, müsste aber 320,63 sein. Excel rundet mit diesem Wert auch auf 320,63.

Das kaufmännische Runden war auch für uns in Xojo problematisch. Wir benutzen in unserer Software daher seit Jahren die folgende Funktion vor der Ausgabe mit Format:

Public Function RoundMct(value As currency, decimals As Integer) As currency
   
  dim ret As Currency = 0.0
  Dim sign as Integer = Sign( value )
  
  value = Abs( value )
  value = value * Pow( 10, decimals )
  value = value + 0.5
  
  value = floor( value ) / Pow( 10, decimals )
  ret = sign * value
  return ret

End Function

@Dagmar Schreeck-Oeser - Super, vielen vielen Dank, hat mir sehr geholfen!