nix: Frage zum Wiki-Artikel „Math-Funktionen“

problematische Seite

Und kein Hinweis auf die (aktuelle?) Unbrauchbarkeit dieser Hilfsschüler-Mathematik-Funktionen. Daß beispielsweise Firefox bei vielen einfach immer 0 zurück gibt oder Safari aus round(up, sqrt(12), 1) 3 „errechnet“ (wobei sowohl sqrt als auch round Müll abliefern).

  1. problematische Seite

    Hallo Dedlfix und Jürgen,

    der Beitrag ist zwar nix-mäßig im Hilfsschüler-Stil dahergerotzt, aber inhaltlich leider richtig. Deswegen möchte ich ihn stehen lassen.

    Hallo nix,

    wir haben uns bei den Kompatibilitätsinformationen auf caniuse verlassen und nur Stichproben gemacht. Leider funktionierten bei mir genau die, nämlich die Trigonometrie.

    Ich habe bei Mozilla nach einem einschlägigen Firefox-Bug gesucht, aber nichts gefunden. Vielleicht suche ich auch falsch, du kannst gerne dein Glück versuchen: https://bugzilla.mozilla.org/home

    Bei Safari bin ich dann ganz ausgezählt. @Gunnar Bittersmann, hast Du schonmal im Safari die neuen CSS Mathefunktionen durchdekliniert? hypot, sqrt, exp, pow – soll funktionieren. Aber im Firefox auch, und da tun's die definitiv gerade nicht.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. problematische Seite

      Ich habe mal einen Bug gemeldet.

      Rolf

      --
      sumpsi - posui - obstruxi
      1. problematische Seite

        Antwort ist schon da: Die Doku ist falsch, die Funktionen existieren nur in nightly builds (welches nicht die publizierte Hauptversion ist).

        Rolf

        --
        sumpsi - posui - obstruxi
    2. problematische Seite

      Bei Safari klappt es jedenfalls mit dem Runden nicht. Meint jedenfalls nicht nur mein Taschenrechner. Z. B. round(up, 1, 1) liefert 2. Sprich: der dazu gestellte Text müßte dafür „Sucht das kleinste Vielfache von B, das größer als oder gleich A“ lauten.

      Daß die Winkelfunktionen anscheinend korrekt arbeiten, ist wohl von den (3d-)Transformationen erzwungen.

      Und: ich weiß jetzt zwar nicht mehr, welche Funktion es war. Aber durch Ausprobieren habe ich herausgefunden, daß Safari bis zu (natürlich ohne die dem HTML geschuldeten Leerzeichen drin) 5 992 310 449 541 052 194 164 221 663 163 494 255 237 959 497 791 619 381 009 644 190 483 780 234 122 014 422 251 994 298 678 557 123 638 184 840 730 837 658 029 273 473 880 274 202 427 912 419 190 651 778 837 937 347 162 149 091 042 541 043 590 422 504 588 341 052 16 325 158 886 618 903 971 251 811 376 549 462 608 071 766 491 253 508 865 516 946 781 098 003 119 699 971 763 985 917 847 219 834 413 66 679 553 rechnet[^1]! So ein Zahlenraum ist beim Runden dann natürlich … äh, wichtig? — Muß mal bei Gelegenheit nachsehen, ob der 50g da noch mitspielt oder doch „endlich“ auch an die Grenzen seiner Integer-Fähigkeiten getrieben wird.

      [^1] nein, das hat nicht wirklich lange gedauert. „Unsereins“ hat nicht nur noch mit dem Rechenschieber gerechnet, sondern auch „so etwas“.

    3. problematische Seite

      Es war ja eigentlich auch eine Stichprobe, die mich drauf gebracht hat. Der Versuch, ein Gebilde aus Blöcken annähernd quadratisch anzuordnen, wobei die Anzahl derselben zwar variabel, aber immerhin schnell zu ermitteln ist:

      :root {
          /*
            hier als Beispiel; steht „original“ im HTML
            vor dem Einbinden des Stylesheets
          */
          --images: 33;
          /* und das steht im Stylesheet: */
          --columns: sqrt(var(--images));
          /* hey, bei Safari klappt sqrt! */
          --rows: calc(var(--images) / var(--columns));
      }
      

      Müßte man da das Runden einsetzen (scheint bei Firefox einigermaßen zu funktionieren), dann ungefähr so:

          --columns: round(up, sqrt(var(--images) - 1 / 1000000000000000), 1); 
      

      Also: verständlich.

      Das große Problem: man muß ganz schön herumtüfteln, wenn man sich da aufs CSS verlassen (und nicht JS-Äquivalente gelten lassen) will. Man bekommt die Ergebnisse nur in Form von Reaktionen des Layouts, aber nicht als Zahl, vor die Nase gesetzt. Gut, noch als Text, der aus dem CSS zusammengebraut wurde. Aber das hilft da ja auch nicht weiter.