轉換為最接近的整數 - 不四捨五入你好。
作為 JMP 新手,我確信這是一個典型的初學者錯誤。
我需要將小數轉換為整數而不進行四捨五入。
示例 1:從列 1 複製值 0.5986 並將其保存到列 2。 0 應保存到第 2 列。 相反,1 正在被保存。
示例2:從column1 複製值1.5986 並將其保存到column2。 1 應保存到第 2 列。 相反,有 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);
);
任何幫助是極大的讚賞。
謝謝。
內容組織數據存取數據混合和清理大規模定制質量和工藝工程分享和交流結果回复:轉換為最接近的整數 - 不四捨五入親愛的@swanthog ,在一個腳本中,我測試了三種不同的方法來計算具有不同行數的表中的平方 y = x*x。
結果是,
- 循環花費了十倍的時間
- 作為表操作
- 矩陣計算比表運算快5倍
另外,就乾淨的代碼和更少的錯誤而言,我認為如果有其他方法(表和矩陣)具有內置功能來處理每個元素,那麼避免循環是一個很好的建議。
但對於小腳本,如果性能不成問題,循環也可以。 可讀性(對於作者來說)也很重要。

回复:轉換為最接近的整數 - 不四捨五入謝謝喬治和特克斯尼爾森。
我也很欣賞名稱解析提示。 我還沒有在文檔中遇到過它。
我猜測避免循環的建議是由於負面的性能影響。 是對的嗎? 使用循環與表公式對性能的影響/差異(大致)是什麼?
謝謝!
勞倫斯
回复:轉換為最接近的整數 - 不四捨五入此外@tx尼爾森,這是它的代碼:
如您所見,您可以使用公式或將值寫入該列。
如果可能的話,如果表可以做到沒有循環,最好避免循環(對於每一行)。
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 ) ) )
);

回复:轉換為最接近的整數 - 不四捨五入您可以使用 Floor() 和 Ceiling() 函數。