轉換為最接近的整數-不四捨五入你好。
作為JMP的新手,我敢肯定這是一個典型的初學者的錯誤。
我需要將十進制數轉換為整數而不四捨五入。
示例1:從列1複製值0.5986並將其保存到列2。 0應該保存到column2。 相反,將保存1。
示例2:從列1複製值1.5986並將其保存到列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);
);
任何幫助是極大的讚賞。
謝謝你。
腳本編寫回复:轉換為最接近的整數-不四捨五入您可以使用Floor()和Ceiling()函數。
回复:轉換為最接近的整數-不四捨五入此外@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 ) ) )
);

回复:轉換為最接近的整數-不四捨五入謝謝Georg和txnelson。
我也很欣賞名稱解析提示。 我還沒有在文檔中找到它。
我猜建議避免循環的原因是對性能的負面影響。 是對的嗎? 使用循環和表公式對性能的影響/差異(大致)是什麼?
謝謝!
勞倫斯
回复:轉換為最接近的整數-不四捨五入親愛的@swanthog在腳本中,我測試了三種不同的方法來計算具有不同行數的表中的平方y = x * x。
結果是,
- 循環需要十倍的時間
- 作為表操作
- 矩陣計算比表運算快5倍
同樣在乾淨的代碼和更少的錯誤方面,我認為最好避免循環,如果有其他方法(表和矩陣)已經內置了處理每個元素的功能。
但是對於小型腳本,如果性能沒有問題,則循環也可以。 (在作者看來)可讀性也很重要。
