免费注册 查看新帖 |

Chinaunix

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

PERL 循环错误。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-22 11:25 |只看该作者 |倒序浏览
#!/usr/bin/perl
open (PG, ">;pin.tdf_bottom";
$number=0;
$order=1;
$offset=9.81 ;
for ($number = 0 ; $number <= 255 ; $number++) {
$order = $order +1;
$offset= $offset+2.64;
        print PG "pin \"din\[$number\]\" 64 0 0 \"bottom\" $order $offset\n" ;
}
close (PG);


为什么 不能加小数。 如果2。64 是整数就没问题了。。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-03-22 13:43 |只看该作者

PERL 循环错误。。

我測試可以呀...
pin "din[0]" 64 0 0 "bottom" 2 12.45
pin "din[1]" 64 0 0 "bottom" 3 15.09
pin "din[2]" 64 0 0 "bottom" 4 17.73
pin "din[3]" 64 0 0 "bottom" 5 20.37
pin "din[4]" 64 0 0 "bottom" 6 23.01
pin "din[5]" 64 0 0 "bottom" 7 25.65
pin "din[6]" 64 0 0 "bottom" 8 28.29
pin "din[7]" 64 0 0 "bottom" 9 30.93
pin "din[8]" 64 0 0 "bottom" 10 33.57
pin "din[9]" 64 0 0 "bottom" 11 36.21
pin "din[10]" 64 0 0 "bottom" 12 38.85
pin "din[11]" 64 0 0 "bottom" 13 41.49
pin "din[12]" 64 0 0 "bottom" 14 44.13
pin "din[13]" 64 0 0 "bottom" 15 46.77


只是在後面會出現這種..
pin "din[245]" 64 0 0 "bottom" 247 659.249999999997
pin "din[246]" 64 0 0 "bottom" 248 661.889999999997
pin "din[247]" 64 0 0 "bottom" 249 664.529999999997
pin "din[248]" 64 0 0 "bottom" 250 667.169999999997
pin "din[249]" 64 0 0 "bottom" 251 669.809999999997
pin "din[250]" 64 0 0 "bottom" 252 672.449999999997
pin "din[251]" 64 0 0 "bottom" 253 675.089999999997
pin "din[252]" 64 0 0 "bottom" 254 677.729999999997
pin "din[253]" 64 0 0 "bottom" 255 680.369999999997
pin "din[254]" 64 0 0 "bottom" 256 683.009999999997
pin "din[255]" 64 0 0 "bottom" 257 685.649999999997

需要處理一下 ...

论坛徽章:
0
3 [报告]
发表于 2004-03-22 13:56 |只看该作者

PERL 循环错误。。

怎么处理。。

这就是我要问的。。为什么84后面有999999999999

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-03-22 14:01 |只看该作者

PERL 循环错误。。

因為 double的關係...
用sprintf("%6.2f",$ofsset);
就好了...

论坛徽章:
0
5 [报告]
发表于 2004-03-23 10:54 |只看该作者

PERL 循环错误。。

还是不成。。
in "din[81]" 64 0 0 "bottom" 83   0.00,226.29)
pin "din[82]" 64 0 0 "bottom" 84   0.00,228.929999999999)
pin "din[83]" 64 0 0 "bottom" 85   0.00,231.569999999999)

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-03-23 13:10 |只看该作者

PERL 循环错误。。

$offset= $offset+2.64;
$offset = sprintf("%6.2f",$offset);
還是不行嗎?
我測試可以呀...

论坛徽章:
0
7 [报告]
发表于 2004-03-23 14:53 |只看该作者

PERL 循环错误。。

我加的是 "%.2f"

那个6 是什么意思?

谢谢。。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-03-23 15:29 |只看该作者

PERL 循环错误。。

其實就是 c 的sprintf的用法...
"%6.2f"
等於
總共6位數包括"."
小數點以下佔兩位....
多的會被切掉...例如
123.23 (總共六位..小數點以下佔兩位)
就是 %6.2f的例子...
看看C的語法就曉得了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP