最も近い整数に変換 - 四捨五入なしやあ。
JMP を初めて使用するので、これは典型的な初心者の間違いだと思います。
小数を四捨五入せずに整数に変換する必要があります。
例 1: 値 0.5986 が列 1 からコピーされ、列 2 に保存されます。 0 を column2 に保存する必要があります。 代わりに 1 が保存されます。
例 2: 値 1.5986 が列 1 からコピーされ、列 2 に保存されます。 1 を column2 に保存する必要があります。 代わりに 2 が保存されます。
Round(x, 0) を使用してみましたが、数値は常に切り上げられます。
また、column1 の値をフォーマットして数値に変換し直すことも試みました(失敗)。
Column1 は次のように定義されています。
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
Column2 は次のように定義されています。
New Column( "WholeSeconds",
Numeric,
Continuous,
Format( Fixed Dec, 5, 0),
);
コード:
For Each Row(
lvTime = dt:Time;
dt:WholeSeconds = Round( lvTime,0);
);
ご協力をよろしくお願いいたします。
ありがとう。
コンテンツの構成データアクセスデータのブレンディングとクリーンアップマスカスタマイゼーション品質およびプロセスエンジニアリング結果の共有と伝達Re: 最も近い整数に変換 - 四捨五入なし親愛なる@swanthog , スクリプトでは、行数が異なるテーブルで平方 y = x*x を計算するための 3 つの異なる方法をテストしました。
結果は、
- ループには10倍の時間がかかる
- テーブル操作として
- 行列計算はテーブル演算よりも 5 倍高速です
また、コードがきれいでエラーが少ないという観点から、各要素に対応する機能が組み込まれている他のメソッド (テーブルと行列) がある場合は、ループを回避することをお勧めします。
ただし、小さなスクリプトの場合、パフォーマンスが問題にならない場合は、ループも問題ありません。 (著者の目から見て) 読みやすさも重要です。

Re: 最も近い整数に変換 - 四捨五入なしゲオルグさん、そしてtxnelsonさん、ありがとうございました。
名前解決のヒントも感謝します。 ドキュメントではまだ見つけていませんでした。
ループを避けることが推奨されているのは、パフォーマンスへの悪影響によるものだと思います。 そうですか? ループ式とテーブル式を使用した場合、パフォーマンスへの影響や違いは (大まかに) どのようなものですか?
ありがとう!
ローレンス
Re: 最も近い整数に変換 - 四捨五入なしに加えて@txnelson 、そのコードは次のとおりです。
ご覧のとおり、数式を使用したり、その列に値を書き込んだりできます。
可能であれば、テーブルでループなしで実行できる場合は、(行ごとの) ループを回避することをお勧めします。
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 ) ) )
);

Re: 最も近い整数に変換 - 四捨五入なしFloor() 関数と Ceiling() 関数を使用できます。