Qlik函数学习之rand和round

本文详细解析了Round函数的不同参数组合及其返回值规律,并结合Rand函数的应用场景进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过下面的脚本案例学习理解两个函数round与 rand

Transactions:
Round(1000*Rand()*Rand()*Rand()) as Sales,
RecNo() as TransID
While rand()<0.5 or IterNo()=1;

round() 函数:

Round (x[, step[, offset]]) 

有3个参数 X  step   offset  其中x为必须

tips:在没有设置  step 和 offset 时 分别默认为 1 和 0

通过查询函数帮助手册有以下案例:

Round( 3.8 )

返回 4

Round( 3.8, 4 )

返回 4

Round( 2.5 )

返回 3。 向上取整, 因为 2.5 正好是默认步进间隔的一半。

Round( 2, 4 )

返回 4。 向上取整, 因为 2 正好是步进间隔 4 的一半。

Round( 2, 6 )

返回 0。 向下取整, 因为 2 小于步进间隔 6 的一半。

Round( 3.88 , 0.1 )

返回 3.9

Round( 3.88 , 5 )

返回 5

Round( 1.1 , 1 , 0.5 )

返回 1.5

针对其中几个我们进一步分析:

在Round(3.8)中返回结果为4  (没有设置step 和 offset 则 它们分别默认为 1,0)

 当没指定X值的时候我们可以判定该函数的返回值  应该是:-1,0 ,1 ,2 ,3,4…这样的整数序列中的一个数。

 可能值为什么会是这样一个序列呢 ? 因为 step 步长为1  当 为round(-3.8)时会返回 -4 

 所以当X指定为3.8时 函数向上取整为4

Round(3.8,4)  此时设置了step=4  offset 未指定则继续默认为0  

所以在指定了step为4时  不考虑X则返回值可能是:-4,0 ,4,8,12…这样一个序列

 当X指定为 3.8 时 更靠近系列中的数字4  则向上取整返回4   (往比X更大的数上取  叫向上取整,往比X更小的数取叫向下取整) 

何时该向上取整,何时向下取整?

结论  步经间隔一半时,向上取整,步经间隔一半以下的向下取整

最后的

Round( 1.1 , 1 , 0.5 )   通过这样指定后 若不考虑X值则返回值可能值为这样一个序列:   -1.5,-0.5,0.5,1.5,2.5,3.5,4.5…

1.1 更靠近 1.5  而不是 0.5  所以最后返回结果是 1.5 


在上面的脚本中 用到了rand 函数,我们知道系统每调用一次rand()就会产生一个0-1之间的一个数,所以load的每一条记录中使用rand()获取到的值是不同的,则在最后的while中和前面的rand()的值也是不同的。

 








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值