gpt4 book ai didi

perl - Perl 如何存储/处理非常大的数字?是否应该使用模块来代替 Perl 的默认处理方法?

转载 作者:行者123 更新时间:2023-12-01 05:06:25 25 4
gpt4 key购买 nike

我需要添加 50 位数字,所以我将它们作为“字符串”处理,并编写了自己的函数来将它们相加。之后,为了它,我尝试了这个:

readFile(shift (@ARGV));

sub readFile
{
my $file = shift; #contains a bunch of 50-digit numbers
my $result = 0;

open (my $inFile, $file);

while (<$inFile>)
{
chomp;
$result += $_;
}

print $result;
}

令我惊讶的是,它奏效了。我不明白。在我使用过的所有其他语言中,您必须使用某种特殊变量来执行此操作。 Perl 会自动检测到你有一个非常大的数字并相应地处理它吗?如果是这样,如果有人提前知道他们将要处理非常大的数字,那么是否有一个 Perl 模块比 Perl 默认处理它们更有效?

提前致谢。

最佳答案

Perl 会正确处理它们,但是作为 double 浮点值,所以你的结果不会有接近 50 位的精度。您可以使用the bigint pragma但是,要获得透明的大整数处理:只需将 use bigint; 添加到您的代码中。 (这显然不会像 float 学那样执行,但它比必须自己操作字符串要好。)

关于perl - Perl 如何存储/处理非常大的数字?是否应该使用模块来代替 Perl 的默认处理方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17016063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com