原创_关于鉴定指定值是否包含小数的方法。_人力资产
        
 
| | | 作者 |  |  | 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);
 }
 | 
 |  |  |  | 
 
 
 
 | 
 | 
 | 
 
 |