转换为最接近的整数-不四舍五入你好。
作为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倍
同样在干净的代码和更少的错误方面,我认为最好避免循环,如果有其他方法(表和矩阵),它们具有内置的功能来处理每个元素。
但是对于小型脚本,如果性能没有问题,则循环也可以。 (在作者看来)可读性也很重要。
