网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月22日漏签0天
perl吧 关注:5,587贴子:27,308
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 19回复贴,共1页
<<返回perl吧
>0< 加载中...

求助!关于perl中%

  • 只看楼主
  • 收藏

  • 回复
  • 影xin
  • 天降软妹
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
小弟是新手,最近在入门的碰到了一些问题,急需各位大侠求助,在此先谢过了!!!小弟的问题是:
1.perl中%到底是指取模还是取余
小弟测试发现貌似是指取模,因为执行
-7%4
得到1,而不是-3,请帮忙确认下
2.小弟写了下面代码
$x = 261.580;
$g = 0.005;
$ac = 1000;
$xs = $x * $ac;
$mul = $g * $ac;
$xmod = $xs % $mul;
执行后发现$xmod为4而不是0???
而如果把最后一句改为:
$xmod = “$xs” % $mul;
就能得到0,请问为什么啊
另外,我也试了把$ac设为10000,
执行$xmod = $xs % $mul;
也能得到0,求解求解!!!


  • lvxc88
  • 签订契约
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、perl是取模,不是求雨。
2、实数在计算机里面是近似值,在取模的时候被向下取整了
$xmod = $xs % $mul;
实际上是
$xmod = int($xs) % int($mul);
你print int($xs);
实际上是261579


2025-08-22 06:47:43
广告
不感兴趣
开通SVIP免广告
  • lvxc88
  • 签订契约
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
将$xs转换为字符串的时候,perl能够正确的将实数近似值理解为正常的整数。而乘以10000,那就是计算机内部计算实数的机制了,虽然你增加了10被,但是在实数运算时不能简单理解为增加了10倍,也就是说,261.580在乘以1000的时候变成了261579.9999999......,而乘以10000的时候,变成了261580.00000000......。


  • lvxc88
  • 签订契约
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以上是个人理解,不一定正确,仅供参考。


  • 影xin
  • 天降软妹
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问下面这句模式匹配有语法错误吗
$line =~ "SITE"
perl模式匹配时可以使用任何成对或部分非成对的分隔符,如() <> {} ^^ ## 等,但是如果不是正斜线“/”的话,m不能省略掉吧???


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 19回复贴,共1页
<<返回perl吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示