You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Perl数组中生成的10个随机数进行取整?

解决Perl生成无小数随机数的问题

没问题!在Perl里要把rand()生成的小数转成无小数的整数,有几种实用的方法,完全可以根据你想要的整数范围和取整规则来选:

1. 截断小数取整数(最常用)

int()函数会直接砍掉浮点数的小数部分,只保留整数部分。如果你想要生成0到N-1之间的整数,可以直接给rand()传参数N,再用int()取整:

# 生成10个0到9之间的整数
my @randoms = map { int(rand(10)) } (1..10);

要是你需要1到N之间的整数,只需要在结果上加1就行:

# 生成10个1到100之间的整数
my @randoms = map { int(rand(100)) + 1 } (1..10);

2. 四舍五入取整数

如果需要按照四舍五入规则得到整数,可以用Perl的POSIX模块里的round()函数,或者用sprintf格式化输出:

方法一:使用POSIX::round

use POSIX qw(round);

# 生成10个四舍五入后的0到9之间的整数
my @randoms = map { round(rand(10)) } (1..10);

方法二:使用sprintf

# 同样实现四舍五入取整
my @randoms = map { sprintf("%.0f", rand(10)) } (1..10);

小提示

原来的代码map { rand } (1..10)生成的是0到1之间的浮点数,直接用int()取整的话结果全是0,所以一定要给rand()传入你想要的范围上限,才能生成有意义的整数随机数哦~

内容的提问来源于stack exchange,提问作者user9639111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:35:20