In nächste ganze Zahl umwandeln - Keine RundungHallo.
Ich bin mir sicher, dass dies ein typischer Anfängerfehler ist, da ich neu bei JMP bin.
Ich muss eine Dezimalzahl in eine ganze Zahl umwandeln, ohne sie zu runden.
Beispiel 1: Der Wert 0,5986 wird aus Spalte 1 kopiert und in Spalte 2 gespeichert. 0 sollte in Spalte 2 gespeichert werden. Stattdessen wird 1 gespeichert.
Beispiel 2: Der Wert 1.5986 wird aus Spalte1 kopiert und in Spalte2 gespeichert. 1 sollte in Spalte 2 gespeichert werden. Stattdessen wird 2 gespeichert.
Ich habe versucht, Round (x, 0) zu verwenden, aber die Zahl wird immer aufgerundet.
Ich habe auch versucht, den Wert aus Spalte 1 zu formatieren und wieder in eine Zahl umzuwandeln (schlägt fehl).
Spalte1 ist definiert:
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
Spalte2 ist definiert:
New Column( "WholeSeconds",
Numeric,
Continuous,
Format( Fixed Dec, 5, 0),
);
Code:
For Each Row(
lvTime = dt:Time;
dt:WholeSeconds = Round( lvTime,0);
);
Jede Hilfe wird sehr geschätzt.
Danke.
SkriptingBetreff: In nächste ganze Zahl konvertieren - Keine RundungSie können die Funktionen Floor () und Ceiling () verwenden.
Betreff: In nächste ganze Zahl konvertieren - Keine RundungZusätzlich zu @ txnelson , hier ist der Code dafür:
Wie Sie sehen können, können Sie eine Formel oder geschriebene Werte für diese Spalte verwenden.
Es ist besser, Schleifen (für jede Zeile) zu vermeiden, wenn Tabellen darauf verzichten können, wenn dies möglich ist.
Names Default To Here( 1 );
cdt = New Table( "Example Floor",
add rows( 2 ),
New Column( "Time", Numeric, Continuous, Format( Best, 12 ), set values( [0.5986, 1.5986] ) ),
New Column( "WholeSeconds_formula", Numeric, Continuous, Format( Best, 12 ), Formula( Floor( :Time ) ) ),
New Column( "WholeSeconds_value", Numeric, Continuous, Format( Best, 12 ), set each value( Floor( :Time ) ) )
);

Betreff: In nächste ganze Zahl konvertieren - Keine RundungDanke, Georg und txnelson.
Ich schätze auch den Tipp zur Namensauflösung. Ich war in der Dokumentation noch nicht darauf gestoßen.
Ich vermute, dass die Empfehlung zur Vermeidung von Schleifen auf negative Auswirkungen auf die Leistung zurückzuführen ist. Ist das richtig? Was ist (ungefähr) die Auswirkung / der Unterschied zur Leistung bei Verwendung von Schleifen gegenüber Tabellenformeln?
Vielen Dank!
Lawrence
Betreff: In nächste ganze Zahl konvertieren - Keine Rundungsehr geehrter @ Swanthog In einem Skript habe ich drei verschiedene Methoden zur Berechnung eines Quadrats y = x * x in einer Tabelle mit unterschiedlicher Anzahl von Zeilen getestet.
Das Ergebnis ist,
- dass die Schleife zehnmal länger dauert
- als Tabellenoperation
- und die Matrixberechnung ist 5x schneller als die Tabellenoperation
Auch in Bezug auf sauberen Code und weniger Fehler ist es meiner Meinung nach eine gute Empfehlung, Schleifen zu vermeiden, wenn es andere Methoden (Tabelle und Matrix) gibt, die Funktionen zur Adressierung jedes Elements eingebaut haben.
Aber für kleine Skripte und wenn die Leistung kein Problem darstellt, sind Schleifen ebenfalls in Ordnung. Auch die Lesbarkeit (für den Autor) zählt.
