Rundungsfehler im Calc abstellen

Wie kann man Calc beibringen mit fixen Zahlen, oder zumindest mit fixen
Nachkommastellen zu rechnen? Der konkrete Fall:

=SUMME(A2:A4)
=B2/12
=B3/12
=B4/12

1,16 €
0,10 €
1,00 €
0,05 €

Vermutlich sind die Werte in A2-4 mit beliebig vielen Nachkommastellen
und werden wegen der Formatierung as EUR nur mit zwei angezeigt. Die
SUMME() addiert diese Nachkommastellen und kommt auf einen größeren
Wert. Sind letztlich nur Cent, aber ärgerlich.

Da die Tabelle deutlich größer ist wäre mir eine "globale Lösung" lieber
als in jeder Zelle die Division anzupassen, falls es da etwas gibt.

Olaf

Hallo Olaf,

Calc rechnet richtig.
Wenn Du schrittweise die Anzahl
der Nachkommastellen in A2-4 erhöhst,
wirst Du sehen, wo der Fehler steckt.

Gruß
Jörn

Das ist bei allen Tabellenkalkulationen so.

Wenn Du gerundete Werte zum Weiterrechnen brauchst wie eben bei Geldbeträgen:

Extras -> Optionen -> LibreOffice Calc -> Berechnen -> Genauigkeit wie
angezeigt

Gruß

Harry

Hi Jörn,
es fehlt das Runden der Werte, damit das Ergebnis richtig ausfällt, also:

=SUMME(A2:A4)
=RUNDEN(B2/12; 2)
=RUNDEN(B3/12; 2)
=RUNDEN(B4/12; 2)

Ciao
     André

Wie kann man Calc beibringen mit fixen Zahlen, oder zumindest mit fixen
Nachkommastellen zu rechnen? Der konkrete Fall:

=SUMME(A2:A4)
=B2/12
=B3/12
=B4/12

1,16 €
0,10 €
1,00 €
0,05 €

Nach einigen Versuchen bin ich drauf gekommen das 0,10 tatsächlich 0,103
und 0,05 tatsächlich 0,054 war. Das ergibt 0,157 welches aufgerundet
wird. Leider habe ich keinen Knopf gefunden um dieses Aufrunden zu
unterbinden. Hier hilft wohl nur in jede Zelle RUNDEN() einzutragen.

Da die Tabelle deutlich größer ist wäre mir eine "globale Lösung" lieber
als in jeder Zelle die Division anzupassen, falls es da etwas gibt.

Die globale Lösung war 'Wie angezeigt berechnen', was allerdings in
meinem Fall zu grob falschen Ergebnissen führt.

Olaf

Nur so als Idee und ich weis nicht ob es funktioniert: Mache eine Spalte mit 3 Nachkommastellen und übertrage aus der Spalte nur die zwei Nachkommastellen ohne Rundung... Also Rundung völlig ausgeschaltet...

Das habe ich jetzt mit sed(1) hinbekommen.

Leider hat Calc ein ziemlich krankes Dateiformat. Statt die Werte zu
berechnen werden sie mehrfach in die Datei geschrieben:

     <table:table-cell table:style-name="ce70" table:formula="of:=([.$H20]*[.J$6])/12" office:value-type="currency" office:currency="EUR" office:value="141.93125" calcext:value-type="currency">
      <text:p>141,93 €</text:p>
     </table:table-cell>

Da hilft auch kein F9 zum neuberechnen... Da weiss man nie woran man ist: ist
der angezeigte Wert berechnet oder gespeichert?

Bis jetzt half nur 'Wie angezeigt berechnen' an und auszumachen.
Oder eben mit sed auch office:value= und <text> löschen.

Olaf

Hallo Olaf,

ich würde das Calc-Format wirklich nicht krank nennen. Es ist sehr logisch. Da steht:
1. die Formel, die braucht man zum Berechnen, wenn sich die Quellfelder ändern
2. der berechnete Wert im Format des Feldes, "currency" hat nun einmal 5 Nachkommastellen
3. der angezeigte Wert, offenbar laut Einstellungen

Gerhard

Seit wir Gigahertz und Gigabyte im Rechner stecken haben gibt es keinen
Grund die paar Werte bei Bedarf zu berechnen.

Olaf

Nach einigen Versuchen bin ich drauf gekommen das 0,10 tatsächlich 0,103
und 0,05 tatsächlich 0,054 war. Das ergibt 0,157 welches aufgerundet
wird. Leider habe ich keinen Knopf gefunden um dieses Aufrunden zu
unterbinden. Hier hilft wohl nur in jede Zelle RUNDEN() einzutragen.

Das habe ich jetzt mit sed(1) hinbekommen.

Leider hat Calc ein ziemlich krankes Dateiformat. Statt die Werte zu
berechnen werden sie mehrfach in die Datei geschrieben:

     <table:table-cell table:style-name="ce70" table:formula="of:=([.$H20]*[.J$6])/12" office:value-type="currency" office:currency="EUR" office:value="141.93125" calcext:value-type="currency">
      <text:p>141,93 €</text:p>
     </table:table-cell>

Da hilft auch kein F9 zum neuberechnen... Da weiss man nie woran man ist: ist
der angezeigte Wert berechnet oder gespeichert?

Der Wert abgespeicherte Wert ist der letzte berechnete Wert. Und den
Sinn erkennst Du, wenn Du mal Formeln mit Selbstbezug hast, z. B. bei
folgender Formel in Zelle C4

=WENN(C4+0>B4; C4; B4)

(Erfordert "Extras => Einstellungen => Calc => Berechnen => [X]
Iterationen")

Mit obiger Formel kannst Du zum Bleistift den höchsten jemals erhaltenen
Wert in Zelle B4 festhalten, und die Datei auch problemlos nach Belieben
schließen und wieder öffnen, ohne das der Wert verloren geht. Ich
benutze so was ähnliches z. B. auch gelegentlich, um Timestamps zu
generieren.

Wolfgang