当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 假如函数中这样声名一个字符串: void f(void) { char *pstr = "hello"; *pstr = y; ...... } 这样会发生什么情况呢?其实编译器编译的时候总是会在代码的静态data区创建一个“hello”的字符串数据,然后把pstr指针指向这个静态数据区的地址,按理这样的静态数据应该相当于是const的,这个数据区的数据应该是不允许被修......
    摘要: 上次有位高手给我这样子的一个表达式: ^\d{4}-(0?[1-9]|[1][012])-(0?[1-9]|[12][0-9]|[3][01])[\s]+\d([0-2][0-9]|4?[0-3]):([0-5][0-9]):([0-5][0-9])$ 后来试了一下子,后面的hh:mm:ss里面的hh好像只能输入到13:××:××,14:×......


如何返回数字的小数位数

9420.51280       返回值4  
  0.23000             返回值2  
   
  说明:返回小数点后有几位数,不算小数点最后边的零  
 

NO.1   作者: zsjiaming

FUNCTION   getndec  
  *         取数字的小数位数  
  *               getndec(   nyournum)    
  *               最多可获得15位,超过15位都返回15  
  *               小数部分结尾的0的个数不计其内  
  *                   如1234.566700     将返回4    
  LPARAMETERS   nyournum  
   
  Local   ndot,ndecbak,cnum  
   
  ndecbak=Set("Decimals")                             &&   备份当前系统设置的小数精度  
   
  Set   Decimals   To   18                                       &&   高小数精度为最大位  
   
  nyournum=nyournum%1                                     &&把数字XXXX.YYYYY转换   0.YYYYY  
  cnum=STR(nyournum,25,18)                           &&str实际最多能转成15位小数,  
  cnum=STRTRAN(cnum,0,SPACE(1))             &&把0换成空格  
  cnum=ALLTRIM(CNUM)                                       &&去掉所有空格      
  ndot=LEN(cnum)-1                                           &&因为.占一位(小数点前的0已经换成空格并除掉)  
   
  Set   Decimals   To   (ndecbak)                         &&设回系统以前的小数位  
  RETURN   ndot  
 

NO.2   作者: apple_8180

又完善了一下:  
   
  *获得一个数值的有效小数位数  
   
  ?GetXsLen(9420.51280)   &&返回值4  
  ?GetXsLen(0.23000)         &&返回值2  
  ?GetXsLen(5.0)         &&返回值0  
   
  FUNCTION   GetXsLen  
  LPARAMETERS   lnNum  
  lnDecBak=SET(DECIMALS)  
  SET   DECIMALS   TO   18  
  XsLen=LEN(TRANSFORM(lnNum))-IIF(AT(.,TRANSFORM(lnNum))>0,AT(.,TRANSFORM(lnNum)),LEN(TRANSFORM(lnNum)))  
  SET   DECIMALS   TO   (lnDecBak)  
  RETURN   XsLen  
  ENDFUNC  
 


    摘要: 请问学java应该先学什么再学什么?哪些参考书比较好? 谢谢了~~~ ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE