原创_关于鉴定指定值是否包含小数的方法。_人力资产
作者 |
|
exedeath [个人空间]
注册  2008-10-31 发贴数 29 精华贴 1 原创贴 0 来自 状态 正常
级别 会员 |
|
|
鉴于请假最底为半天,即0.5天,自己在整合需要的取数,但考虑到如果是小数的话可能会影响最后的结果。 苦于在官方文档中找不到IS_FLOAT()类似的函数使用。于是自己想了个折衷的办法。 见下面的脚本: //测定指定值是否是小数 msg("1122的长度是:"+strlen("1122")); msg("1122.5的长度是:"+strlen("1122.5")); int temp9,temp12; float temp10; string temp11; temp10=1122.5; temp9=strlen(temp10); temp12=temp9-2; temp11=str_get_sub(temp10,4,2); msg("1122.5的最后两位是:"+temp11); if(temp11==".5") { msg("当前取值是包含有半天假的!"); } 思路:先取得指定数的长度,再根据我们需要的最后两位计算出需要去除的位数,用截取函数取最后两位并与指定值进行比较,确定指定数是否为小数。 |
|
|
|
|
exedeath [个人空间]
注册  2008-10-31 发贴数 29 精华贴 1 原创贴 0 来自 状态 正常
级别 会员 |
|
|
现在有个问题呀,我以为FLOAT返回的只是.x,但实际上返回的是.x0000000的格式,导致取最后两位的想法不能得到需要的答案。 |
|
|
|
|
exedeath [个人空间]
注册  2008-10-31 发贴数 29 精华贴 1 原创贴 0 来自 状态 正常
级别 会员 |
|
|
换了个思路,用str_pos在指定数值中查询“.5”的位置,如果返回值大于等于0则判定指定值为小数,如果返回值小于0(即-1)则判定不包含半天离岗。 int temp9,temp_xs; string temp11; msg("本次查询到的请假天数为:"+qjts_cxjg); temp9=str_pos(qjts_cxjg,".5"); msg("本次查询到的位置为:"+temp9); if(temp9>=0) { temp_xs=1; qjts_tz=0.5; sjqj_jsrq=get_last_date(sjqj_jsrq); msg("当前取值是包含有半天假的"+nl()+"该天数是:"+qjts_cxjg+"小数位置:"+temp9); } |
|
|
|
|
|
|