根据我的理解阅读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
我应该怎么做才能始终将数字向上,例如,在此示例中,将数字3
作为输出。
答案 0 :(得分:5)
如果从两个可能结果的中间四舍五入,则舍入模式仅影响行为:
#!/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
你想要的是bceil
:
my $m = Math::BigFloat->new('2.3');
print $m->copy->bceil(); # 3