Der Befehl "discard if equal={1.0}" von @Henri Open in Online-Editor Code, hier editierbar zum Übersetzen:
wird in folgender Tabelle manchmal nicht ausgeführt. Woran kann das liegen? Und wie korrigiert man das? Open in Online-Editor Code, hier editierbar zum Übersetzen:
|
Mit Open in Online-Editor Code, hier editierbar zum Übersetzen:
findet man schnell heraus, dass beispielsweise 0.99999 mit 1.0. verglichen wird. Das ist dann in der Tat nicht gleich. Wird später allerdings auf vier Nachkommastellen gerundet, dann sind die Zahlen gleich. Also müsste man entweder bereits an dieser Stelle runden oder den Vergleich mit etwas Unschärfe versehen: Open in Online-Editor Code, hier editierbar zum Übersetzen:
Eine andere Möglichkeit wäre, an der Stelle eine Rundung mit Hilfe von Open in Online-Editor Code, hier editierbar zum Übersetzen:
Dabei wird auch gleich Last but not least kann man natürlich auch die Funktion zur Festlegung der Nachkommastellen verwenden, die auch Open in Online-Editor Code, hier editierbar zum Übersetzen:
oder mit Open in Online-Editor Code, hier editierbar zum Übersetzen:
Außerdem liefert Open in Online-Editor Code, hier editierbar zum Übersetzen:
All das liefert das gleiche Ergebnis wie oben bereits gezeigt. Dokumentiert sind Super. Danke!
(20 Jan '16, 17:21)
cis
|
Mit Open in Online-Editor Code, hier editierbar zum Übersetzen:
|
\ifdim
tut wunderbar. Allerdings werden Zahlen wie0.99999
erst nach dem Vergleich auf vier Nachkommastellen gerundet, was dann1.0000
ergibt.