Bry*_*nny 57 perl integer-division
在Perl中总是进行整数除法的好方法是什么?
例如,我想:
real / int = int
int / real = int
int / int = int
Run Code Online (Sandbox Code Playgroud)
Mic*_*tha 83
词法范围的integer
pragma强制Perl在其范围内使用整数运算:
print 3.0/2.1 . "\n"; # => 1.42857142857143
{
use integer;
print 3.0/2.1 . "\n"; # => 1
}
print 3.0/2.1 . "\n"; # => 1.42857142857143
Run Code Online (Sandbox Code Playgroud)
Bry*_*nny 44
你可以用Perl强制转换:
int(5/1.5) = 3;
Run Code Online (Sandbox Code Playgroud)
小智 5
int(x+.5)
将正值舍入到最接近的整数.四舍五入更难.
向零舍入:
int($x)
对于以下解决方案,请包含以下声明:
use POSIX;
向下舍入: POSIX::floor($x)
要整理: POSIX::ceil($x)
要远离零: POSIX::floor($x) - int($x) + POSIX::ceil($x)
四舍五入到最接近的整数: POSIX::floor($x+.5)
请注意,int($x+.5)
负值失败严重.int(-2.1+.5)
是int(-1.6)
,-1是-1.