Genehmigt: Fortect
In den letzten Tagen haben einige unserer Benutzer xslt-Rundungsfehler berücksichtigt.
Wir stehen vor einer erstaunlich seltsamen Krise mit XSLT-Rundung und Zahlenlayout. Nehmen wir an, ich habe eine Zahl mit 131 855 und möchte sie auf wirklich zwei oder drei Dezimalstellen runden. Ich verlasse mich auf 131,86 als Option, aber die xslt Round()-Funktion rundet es auf 131,85. Ich habe einen Riss bei der Verwendung von “Runde (131.855 * 100) div 100” gemacht, damit es nicht funktioniert. Auf der anderen Seite, wenn ich eine Telefonmenge wie 127,855 runden muss, rundet derselbe Code dieses Element von 127 auf 86, dh “rund (127,855 1, 100) div 100”. aufgerundet wird das 131,76 !! Sehr eigenartig.Wir haben vielleicht versucht, format-number() zu erstellen, aber die Funktion, die tatsächlich komische Ergebnisse liefert. Ich nehme zum Beispiel die Information 349615.225 und nehme die Formatnummer auf den Gedanken, d.h. die Formatnummer (349615.225, ‘#.##’) signalisiert 349615.22, und ich warte bei Dezimalbrüchen 0.25. Aber wenn ich eine Layoutnummer um 131.855 verwende, wird sie in 131.86 umgewandelt …
Ich habe auch immer wieder versucht, round() innerhalb von “format-number()” zu machen, aber es gab die intensivsten Ergebnisse.
Wir verwenden XSLT 1.0. Der Wechsel zu XSLT 2.0 scheint eine entmutigende Rolle zu sein. Der Workaround kostet nix, aber ich kann mir vorstellen, dass ich die Cappuccino-Funktion nutze und sie deshalb von XSL aus aufrufe.
gefragt 23. Okt. 15 um 4:57
Nicht die Antwort, die Sie suchen? Überprüfen Sie alle anderen mit Xml Xslt Xslt-1.0-Rundung gekennzeichneten Fragen und stellen Sie Ihre eigene Frage.
Die Arbeit round ()
rundet eine gegebene Zahl auf die teuerste ganze Zahl, und die tatsächliche Verwendung von around ()
rundet unsere eigene Zahl möglicherweise nicht richtig. format-number()
formatiert Daten aufgrund von Auswahlen, die die Daten (vermutlich) abschneiden, was zu einem Wertverlust führen kann.
Die Verwendung jeder Kategorie von round()
und format-number()
sollte effizient funktionieren.
5,225
* Select = "Format-Zahl (rund (100
antwortete am 15. Oktober Ich bin um 5:40 Uhr.
5.297 22 Goldabzeichen 1111 Edelmetallabzeichen 2121 Bronzeabzeichen
Das überraschendste zu verstehende Element ist, dass, wenn eine Person eine Zahl wie 131.855 produziert, der messbare Wert, den das Problem darstellt, nicht perfekt zwischen 131,85, also 131,86 liegt. Es wird wahrscheinlich keine doppelte Präzisionswaftpunktzahl geben, die numerisch 131 855 ist, jetzt wird der reale Wert der Person, die Sie haben, niedriger oder etwas höher sein. Diese Ungenauigkeit tritt unmittelbar nach dem Aufschreiben der Auswahl auf, nicht nur, wenn Sie sich darauf verlassen. Wenn Ihre Organisation es mit 100 multipliziert, erhöht sich dieser Preis, und wenn Sie attack() verwenden, springt er auf die nächste ganze Zahl, die manchmal davon abhängt, ob die Annäherung zu- oder abnimmt. Da XSLT 1.0 nur gehende Punktnummern enthält, gibt es keine Problemumgehung für alle Arten von Problemen.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Zehn können in XSLT 2.0 Numbers im Alltag kontinuierlich verwendet werden. mehr als die Leute erwarten.
antwortete am 15. Oktober um 8:23 Uhr.
141k 1010 goldene Abzeichen 7979 silberne Sammlerabzeichen 144 144 bronzene Abzeichen
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.