免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8929 | 回复: 10
打印 上一主题 下一主题

再问个问题,如何判断一个标量是不是整数? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-14 10:20 |只看该作者 |倒序浏览
有没有这类函数?一时想不起了啊。

论坛徽章:
0
2 [报告]
发表于 2009-10-14 10:22 |只看该作者
原帖由 mgjrr16888 于 2009-10-14 10:20 发表
有没有这类函数?一时想不起了啊。


if ( int($xx) == $xx )

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2009-10-14 10:41 |只看该作者

回复 #2 兰花仙子 的帖子

谢谢beauty

论坛徽章:
0
4 [报告]
发表于 2009-10-14 10:51 |只看该作者
原帖由 兰花仙子 于 2009-10-14 10:22 发表


if ( int($xx) == $xx )



不够严谨哦      


  1. my $xx = 1.00000000000000001;

  2. if ( int($xx) == $xx ){
  3.         print "int\n";
  4. }

复制代码

[ 本帖最后由 hitsubunnu 于 2009-10-14 10:53 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2009-10-14 11:07 |只看该作者
很奇怪的需求,
可以分享一下需求吗?

我先给你答案:
http://search.cpan.org/~gbarr/Sc ... /lib/Scalar/Util.pm

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
6 [报告]
发表于 2009-10-14 12:37 |只看该作者
也用正则来实现吧?
>perl -e 'my $xx=1 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
int at -e line 1.
1 at -e line 1.
>perl -e 'my $xx=0 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
int at -e line 1.
0 at -e line 1.
>perl -e 'my $xx=-1 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
int at -e line 1.
-1 at -e line 1.
>perl -e 'my $xx=-1.0 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
int at -e line 1.
-1 at -e line 1.
>perl -e 'my $xx=-1.000000000000000000000000001 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
int at -e line 1.
-1 at -e line 1.
>perl -e 'my $xx=-1.000000001 ;if ($xx=~/^-?\d+$/){warn "int";}else{warn "not int"};warn $xx'
not int at -e line 1.
-1.000000001 at -e line 1.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2009-10-14 13:38 |只看该作者
这个需求不奇怪啊,输入的一个参数。我想确定输入的是不是一个整数。

论坛徽章:
0
8 [报告]
发表于 2009-10-14 17:27 |只看该作者
为啥不直接匹配"."呢....?

if($xx=~/\./) 不行么?


。。。。。。

哦。。。。1.000000。。。。。。汗。。。。。。

[ 本帖最后由 lanmeibanban 于 2009-10-14 17:29 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-10-15 21:18 |只看该作者

回复 #8 lanmeibanban 的帖子

嗯,觉得这样说得过去的啊,也方便。

论坛徽章:
0
10 [报告]
发表于 2009-10-19 22:02 |只看该作者
原帖由 hitsubunnu 于 2009-10-14 10:51 发表



不够严谨哦      


my $xx = 1.00000000000000001;

if ( int($xx) == $xx ){
        print "int\n";
}


能解释下么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP