0

Zahl auf ganze Zahl überprüfen

In Ninox gibt es keine Funktion wie int() um zu prüfen, ob es sich um eine ganze Zahl handelt.
Hier kann man sich mit den Funktionen ceil() [Aufrunden auf Ganzzahl] oder floor() [Abrunden auf Ganzzahl] behelfen.

Beispiel1:
let vTeiler := 7;
ceil(91/vTeiler) = 91/vTeiler

Das Ergebnis ist true, weil das Ergebnis der nicht gerundeten Division eine ganze Zahl ergibt.

Beispiel2:
let vTeiler := 7;
ceil(96/vTeiler) = 96/vTeiler

Das Ergebnis ist false, weil das Ergebnis der nicht gerundeten Division keine ganze Zahl ergibt.

Ich nutze dies, um beim Ausdruck von Tabellen, die über mehrere Seiten gehen, die letzte Zeile vor dem Seitenumbruch zu ermitteln und in dieser eine Zwischensumme einzutragen.

8 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe, nur der Vollständigkeit halber: Es gibt auch noch "%" zur Berechnung des Restwertes einer Division. Ist der Rest 0, handelt es sich um eine ganze Zahl:

     

    if Zahl1 % Zahl2 = 0 ...

     

    Lässt sich auch für vorhandene Zahlen nutzen, indem man diese durch 1 teilt:

     

    if Zahl % 1 = 0 ...

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Axel
    Da hast du Recht.
    Somit 3 Möglichkeiten.

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    ...nur der ganz vollständigen und übergenauen Vollständigkeit halber ist Variante 2 nur für Ganzzahlen tauglich, denn : 4.5 % 1.5 = 0

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ja. 4,5 : 1,5 = 3, Rest 0. Das Ergebnis der Division ist also eine Ganzzahl. Oder?

     

    Hilf mir mal von dem Schlauch herunter, auf dem ich gerade stehe.

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Na, vielleicht bin ich ja am Thema vorbei. Ich dachte, es ging um die Überprüfung, ob z.B. Zahl1 eine Ganzzahl ist. Dann kann ich nicht eine beliebige Zahl2 nehmen zum rechnen. Und damit gäbe es mindestens eine Lösung für Zahl1 und Zahl2 das fasche Ergebnis liefern - true. if Zahl1 % 1.5 = 0 then true ergibt auch true wenn die zu überprüfende Zahl1 eine Bruchzahl ist (4.5).

    Immer funktioniert jedoch die 3. Lösung mit Modulo 1.

    Ich wollte es nicht zerreden. Tatsächlich freue ich mich, wenn Uwe und Du hier viel Licht ins dunkle Ninox bringen. Gruß. Mirko

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Nee, ist ja super, wenn genau hingeschaut und Fehler ggf. berichtigt werden. Wäre ja nicht mein erster gewesen ... In diesem Fall fand ich aber auch nach intensiver Suche keinen, deshalb die Nachfrage. Dachte, es wäre klar, dass sich das erste Beispiel auf das Ergebnis einer Division bezieht, das zweite auf eine bestimmte Zahl. Alles gut.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich entschuldige mich bei euch beiden das Beispiel nicht genauer erläutert zu haben.
    Aber so wird das Forum nicht langweilig und die verschiedenen Aspekte der Lösungen werden aufgezeigt.
    Ich hab einfach Spaß Teil davon zu sein.

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Genau, Uwe ist schuld! Wann bringt Ninox endlich die Funktion zum digitalen Teeren und Federn? 🤪

     

    Im Ernst: Viele Wege führen nach Rom. Je mehr man kennt, desto besser.

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 8Antworten
  • 301Ansichten