从我理解阅读文档的内容来看Math::BigFloat,以下内容应该是将数字四舍五入的代码,但它似乎不起作用.
#!/usr/bin/perl
use strict;
use warnings;
use Math::BigFloat;
my $x = Math::BigFloat->new('2.3');
$x->ffround(0, '+inf');
print "$x\n"; # -> 2
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能始终将数字向上舍入,例如,在此示例中将数字3作为输出.
舍入模式仅影响行为,如果从两个可能结果的中间四舍五入:
#!/usr/bin/perl
use warnings;
use strict;
use Math::BigFloat;
my $n = Math::BigFloat->new('2.5');
print $n->copy->ffround(1, 'zero'); # 2
print $n->copy->ffround(1, '+inf'); # 3
print $n->copy->ffround(1, 'odd'); # 3
print $n->copy->ffround(1, 'even'); # 2
Run Code Online (Sandbox Code Playgroud)
你想要的是bceil:
my $m = Math::BigFloat->new('2.3');
print $m->copy->bceil(); # 3
Run Code Online (Sandbox Code Playgroud)