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
-
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 ...
-
Hallo Axel
Da hast du Recht.
Somit 3 Möglichkeiten. -
...nur der ganz vollständigen und übergenauen Vollständigkeit halber ist Variante 2 nur für Ganzzahlen tauglich, denn : 4.5 % 1.5 = 0
-
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.
-
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
-
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.
-
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. -
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 3 JahrenZuletzt aktiv
- 8Antworten
- 334Ansichten