我应该如何在Perl中进行整数除法?

在Perl中总是进行整数除法的好方法是什么?

例如,我想要:

real / int = int int / real = int int / int = int 

词法范围的integer注释强制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 

你可以在Perl中投入整数:

 int(5/1.5) = 3; 

int(x+.5)会将正值向最近的整数四舍五入。 四舍五入更难。

向零圆:

int($x)

对于下面的解决scheme,请包括以下声明:

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。

您可以:

 use integer; 

这是由迈克尔Ratanapintha解释,否则手动使用:

 $a=3.7; $b=2.1; $c=int(int($a)/int($b)); 

注意,'int'不是铸造。 这是将数字转换为整数forms的function。 这是因为Perl 5没有单独的整数除法。 例外是当你使用整数。 那么你将失去真正的分工。

希望它的作品

int(9/4)= 2。

感谢Manojkumar

例如9/4 = 2.25

int(9)/ int(4)= 2

9 / 4-余数/除数= 2

9/4 – 9%4/4 = 2