转换为最接近的整数 - 不四舍五入你好。
作为 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() 函数。