Chinaunix

标题: 请问:Perl中如何得到 比某数大或相等的 最小的整数,类似于ceiling 函数 [打印本页]

作者: shangtian2007    时间: 2013-03-08 10:00
标题: 请问:Perl中如何得到 比某数大或相等的 最小的整数,类似于ceiling 函数
如题,

比如:
  6    得到 6
   6.1 得到 7
   6.8 得到 7
   7    得到 7
类似于ceiling 函数,不知道perl有没有这们的函数。

只知道 int函数是得到  比某数小或相等的 最大的整数
int 6    # 6
int 6.1 # 6
int 6.8  # 6
int 7     # 7

谢谢赐教。
作者: kiwivip    时间: 2013-03-08 10:04
use POSIX qw(ceil floor) ;
作者: Perlvim    时间: 2013-03-08 15:52
-(int(-$number));
作者: rubyish    时间: 2013-03-09 09:31
  1. sub ceiling {
  2.     my $i = shift;
  3.     my $j = int $i;
  4.     $i - $j > 0 ? $j + 1 : $j;
  5. }
复制代码

作者: shangtian2007    时间: 2013-03-09 11:02
非常感谢
回复 2# kiwivip


   
作者: shangtian2007    时间: 2013-03-09 11:06
本帖最后由 shangtian2007 于 2013-03-09 11:42 编辑

感谢回答。试了下,这样 -(int(-6.1)) 得到的是6,而不是7。是不是当操作数是变量时才能有效?
我对int函数的描述也有问题,
perldoc说:int返回操作数的整数部分(returns the integer portion of EXPR),
又说不能用这个函数进行取整(you should not use this funtion for rounding),看得我不得要领。
perldoc上关于int有个更有趣的例子 int(-6.725/0.025) 得到的是 -268,而不是 -269。(注:-6.725/0.025=-269,不知道是何道理)
    print int(-6.725/0.025)  # -268
    print int(-67.25/ 0.25)   # -269

Perlvim 发表于 2013-03-08 15:52
-(int(-$number));

作者: shangtian2007    时间: 2013-03-09 11:08
感谢回答,是我执着了,光顾着找能实现这个功能的函数,却忘了可以自己写子程序
rubyish 发表于 2013-03-09 09:31

作者: Perlvim    时间: 2013-03-09 19:08
如果测试有问题,就不用了。不用执着于别人的错误,而浪费自己的时间。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2