在Perl中always do整数除法的好方法是什么?
例如,我希望:
real / int = int
int / real = int
int / int = int
发布于 2009-02-12 02:48:00
您可以在Perl中转换in:
int(5/1.5) = 3;
发布于 2009-02-12 10:49:50
词法作用域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
发布于 2009-12-15 04:07:16
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。
https://stackoverflow.com/questions/539797
复制相似问题