Hilfe Diskussion:Parserfunktionen/Zahlen

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 8 Monaten von Georg0431 in Abschnitt Funktion round
Zur Navigation springen Zur Suche springen

Funktion round[Quelltext bearbeiten]

Gibt man z.B. #expr:10/5 round 1 ein, erhält man glatt 2, obwohl eigentlich 2,0 erwartbar wäre. Wie kann man das erreichen? --Georg0431 (Diskussion) 13:10, 4. Sep. 2023 (CEST)Beantworten

Hmmh, gibt mir Rätsel auf.
„eigentlich 2,0 erwartbar“:
  • Warum?
  • Erstmal Zwei-Punkt-Null und hier kein Komma.
  • Die Definition ist die „nächste ganze Integer“, nach mittig- oder oben- oder unten-Forderung, justiert um die Nachkommastellen.
  • Heißt: Es gibt mathematisch keine Abweichung zwischen 2,0 und 2, beide Zahlen sind gleich und das geforderte Ergebnis.
Die Vorhersage der nach Operation verbleibender signifikanter Stellen ist hochkomplex und nicht Aufgabe dieser schlichten Funktion.
  • Die dargestellten Nachkommastellen, die gewünscht werden, hängen von der Genauigkeit jeder Komponente bei Multiplikation und Addition ab, um mit denen beiden anzufangen. Die Genauigkeit des Ergebnisses richtet sich in jedem Teilausdruck nach dem schlechtesten.
  • Wenn du durch Kenntnis der Genauigkeit von 10 und 5 (die dann 10.0 und 5.0 sein müssten) darauf kommst, dass das Ergebns eine Nachkommastelle haben kann oder soll, musst du anschließend die Zahlendarstellung vorgeben. Die mathematisch gleichwertigen Teilausdrücke, die die angefragte Funktion liefert, haben darauf keinen Einfluss.
Um zur Antwort zu kommen: Das Endergebnis musst du mittels umseitigem formatnum oder der Vorlage:FormatNum so justieren wie du die sinnvolle Genauigkeit kennst.
VG --PerfektesChaos 21:43, 4. Sep. 2023 (CEST)Beantworten
Ja, richtig, Punkt und nicht Komma. Das wird mir doch zu kompliziert, vgl. auch Wikipedia Diskussion:Lua/Modul/FormatNum#Missing Feature: Nachfolgende Nullen sicherstellen. Das Ergebnis von #expr:7.294 * 1000/19.4 round 1 (eigentlich {{EWZT|RU|27465 * 1000/19.4 round 1, kann man nicht genau darstellen, weil es übersetzt wird) werde ich per Hand eingeben, weil das in der Tabelle besser aussieht. Gruß --Georg0431 (Diskussion) 14:18, 5. Sep. 2023 (CEST)Beantworten