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

    摘要: 我装了3.0 le的没有语法自动提示功能,但是装3.0 pro的又只有一个月的试用期,怎么办啊!? jcreator的网站现在又没有2.5 pro的下载啊!~!~~~~ ......
    摘要: getcurrentdirectory()在pb中如何声明?急!! ......


如何将浮点数值 3.1415 改为 3.14

我用的笨方法是    
  float(int(3.1415*100))/100  
  应该有函数的吧?

NO.1   作者: BCB

3.1415   改为   3.14   ,但会变成3.1399999999999999或3.14000000001  
  未见现在的函数,现在的函数只是:   浮点-->串   而不是     浮点-->浮点  
   
 

NO.2   作者: zihan

问题:  
    比如:  
        
       我用C++   BUILDER我要实现一个  
        
       AnsiString   s1=2.9;  
       float   f1;  
       f1=StrToFloat(s1)    
        
    结果变出来的是f1=2.8994324234  
        
    怎么样可以让f1=2.9  
        
    请高手指教~~~~~  
   
   
  解答:  
   
  这个是计算机内的存储格式引起的,因为我们知道,一个浮点数,他不会象字符串一样,在最后面给我们保存一个\0,所以他会根据实际内容进行一定的转化比如说我们保存的一个数  
       float   a   =   1.10;那么,在计算机内并不是保存的1.10,而是保存的有可能象1.09........只类的东西,所以,当我们显示出来的时候,你看到的是一长窜,这个并不影响我们的操作,我门需要注意的是就只是当我们要把他显示出来的时候,会有一定的错误,所以我们只要把他显示出来的修改就可以了,比如说我要显示上面的那个数,我们可以采用这样的方法.  
       ShowMessage(FormatFloat("0.00",a));  
    那么将显示出1.10;我们在tc里面也有类试的用法,比如说%.2f.    
        
    换句话说,你是不知道计算机里面是怎样保存这个数的,如果你担心误差的问题,你可以把最后以为他加上5,因为计算机是取整的,所以就可以了。    
 

NO.3   作者: pcclever

建议楼主还是用双精度好一些,不然转换后还是会有楼上说的3.139999999999999的问题。


    摘要: 现在我有一个字段: nx 3年(送1年) 5年(送2年) 10年(送5年) 12年 就这么几个字段格式。现在我想用这个字段和当前时间比较 datediff(day,now,getdate())>365*(nx字段里的一共几年) 不知道如何取nx字段里的几年。因为有两种格式1、*年(送*年)2、*年。 各位高手帮忙。。 ......
» 本期热门文章:

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