【问题标题】:Math::BigInt error: Can't locate object method "bmuladd"Math::BigInt 错误:找不到对象方法“bmuladd”
【发布时间】:2021-11-01 09:25:28
【问题描述】:

我正在尝试使用 Math::BigInt 进行涉及大数的算术运算。

我的意图是将变量k 乘以4,然后减去1。下面是我的 Perl 文件尝试 MWE:

use strict;
use warnings;
use Math::BigInt;

my $k = '174224571863520493293247799005065324265473'; 
my $int = $k->bmuladd(4,-1);
printf ($int);

我收到以下错误消息:

Can't locate object method "bmuladd" via package "2" (perhaps you forgot to load "2"?) at pv5.pl line 7.

阅读https://perldoc.perl.org/Math::BigInt#Arithmetic-methods,我无法理解有助于解决此问题的内容。

【问题讨论】:

    标签: perl bigint


    【解决方案1】:

    您需要先使用new 创建一个Math::BigInt 对象,然后才能使用bmuladd 等方法。请参阅文档的SYNOPSIS 部分:

    use strict;
    use warnings;
    use Math::BigInt;
    
    my $k = '174224571863520493293247799005065324265473'; 
    my $x = Math::BigInt->new($k);
    my $int = $x->bmuladd(4,-1);
    print "$int\n";
    

    打印:

    696898287454081973172991196020261297061891
    

    【讨论】:

    • 一旦你使用了一个有福的Math::BigInt 对象,所有的算术运算符都被重载来执行你的意思,你可以说$int = $x * 4 - 1
    猜你喜欢
    • 2020-06-13
    • 2021-06-04
    • 2015-12-29
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多