发新话题
打印

[求助] 怎样用perl脚本将string类型的字段进行算术运算( 此文章被查看:1554次,被回复:5篇!! )

怎样用perl脚本将string类型的字段进行算术运算

需求是这样的:有三个字段,类型为string(因为在cq中只支持INT,String,没有Float类型)
现在在执行一个动作后要求输入两个小数:如1.5,33.5,输入后第三个字段的值自动显示为前两个的和,脚本要求用perl.
大家帮忙看看怎么实现啊



© 本文为 草田SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

想得到它们的值的和可以直接相加.即
my $value1 = $entity->GetFieldValue("field1")->GetValue();
my $value2 = $entity->GetFieldValue("field2")->GetValue();

my $field3_value = $value1 + $value2;

如果要限定输入小数,可以用正则表达式限制 ~m/^(?:[1-9]\d*|0)(?:\.[1-9])?$/



© 本文为 anthelionSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

单纯这样直接取值相加,应该是不正确的。

原因在于CQ支持的类型中并没有浮点数这个类型,必须用string类型来间接的进行转换。
而如果用string来实现,就不能直接取字段值再相加。

必须先想办法实现支持小数才行。



© 本文为 懂你SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
优惠购买Rational,Telelogic,Hansky产品,企业VIP服务、实施
VIP服务电话:13581809377

TOP

引用:
原帖由 懂你 于 2006-10-30 10:44 发表
单纯这样直接取值相加,应该是不正确的。

原因在于CQ支持的类型中并没有浮点数这个类型,必须用string类型来间接的进行转换。
而如果用string来实现,就不能直接取字段值再相加。

必须先想办法实现支持小 ...
我当然不是想当然就写出来的,我是经过实际应用了才这样说的.
当两个字符串相加时,perl会自动判定里面的数据类型的.

© 本文为 anthelion 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

草田,赶紧实验一下看看。

如果真能实现的话,Perl真是比VBScript先进的太多了。
我知道如果用VBScript来写的话,这样无论如何都完成不了。

© 本文为 懂你 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
优惠购买Rational,Telelogic,Hansky产品,企业VIP服务、实施
VIP服务电话:13581809377

TOP

楼上提的方法不行,是int类型的在vb下还要用CInt转换呢,string更不行了

© 本文为 草田 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题