Sepliste-Serialisierung DIMZIN-unabhaengig machen
ssg-sepliste->string formatierte die Separator-Koordinaten mit (rtos x 2 2). rtos respektiert die Zeichnungs-Systemvariable DIMZIN (Nullunterdrueckung): bei dem verbreiteten DIMZIN=8 wird 10.00 zu 10 gekuerzt, das Praezisions-Argument hilft nicht. Dieselben Koordinaten serialisierten damit je nach Zeichnungsprofil unterschiedlich - fatal fuer die PERSISTENTE XDATA/Journal-Ablage am Block (verlustfrei im Roundtrip, aber umgebungsabhaengig). Neue Helferfunktion ssg-sepliste-fmt-koord (fix-basiert, kaufmaennische Rundung mit Uebertrag und Vorzeichen) ersetzt rtos - reproduzierbar, unabhaengig von DIMZIN/LUPREC/LUNITS. Plus 7 Kantenfall-Tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d4260acb45
commit
52d92f0da6
@@ -401,6 +401,17 @@
|
||||
(tu-eq "ssg-sepliste-split-feld/normal" '("SEP" "1" "10.00" "20.00")
|
||||
(ssg-sepliste-split-feld "SEP:1:10.00:20.00" ":"))
|
||||
|
||||
;; ssg-sepliste-fmt-koord: GENAU 2 Nachkommastellen, DIMZIN-unabhaengig.
|
||||
;; Ersetzt rtos (das bei DIMZIN=8 abschliessende Nullen verschluckt und die
|
||||
;; XDATA-Serialisierung zeichnungsprofilabhaengig gemacht hat).
|
||||
(tu-eq "sepliste-fmt/ganz" "10.00" (ssg-sepliste-fmt-koord 10.0))
|
||||
(tu-eq "sepliste-fmt/eine-stelle" "30.50" (ssg-sepliste-fmt-koord 30.5))
|
||||
(tu-eq "sepliste-fmt/rundung-ab" "5.01" (ssg-sepliste-fmt-koord 5.007))
|
||||
(tu-eq "sepliste-fmt/uebertrag" "10.00" (ssg-sepliste-fmt-koord 9.999))
|
||||
(tu-eq "sepliste-fmt/negativ" "-5.00" (ssg-sepliste-fmt-koord -5.0))
|
||||
(tu-eq "sepliste-fmt/negativ-rund" "-5.01" (ssg-sepliste-fmt-koord -5.007))
|
||||
(tu-eq "sepliste-fmt/null" "0.00" (ssg-sepliste-fmt-koord 0.0))
|
||||
|
||||
;; ssg-sepliste->string: Serialisierung eines Eintrags
|
||||
(tu-eq "ssg-sepliste->string/ein-eintrag"
|
||||
"SEP:1:10.00:20.00"
|
||||
|
||||
Reference in New Issue
Block a user