CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

??关于进位的

楼主zhouyuzzzzzz()2005-08-01 14:54:13 在 VB / 基础类 提问

在SQL中:  
  Ceiling(0.00)   =   0  
  Ceiling(0.10)   =   1  
  Ceiling(0.20)   =   1  
  Ceiling(0.30)   =   1  
  Ceiling(0.40)   =   1  
  Ceiling(0.50)   =   1  
  Ceiling(0.60)   =   1  
  Ceiling(0.70)   =   1  
  Ceiling(0.80)   =   1  
  Ceiling(0.90)   =   1  
  Ceiling(1.00)   =   1  
  Ceiling(1.10)   =   2  
  那我在程序中该如何做到以上的效果呢,有没有象上面进位的函数。  
   
  问题点数:100、回复次数:10Top

1 楼sdrcxzy(大向)回复于 2005-08-01 15:04:26 得分 0

好像没有一个这样的函数是往大数进位。  
   
  这样可以吗?  
   
   
  i=-fix(-i)+1Top

2 楼chewinggum(口香糖·个人二五计划第一年)回复于 2005-08-01 15:09:09 得分 0

Public   Function   test(ByVal   inputVal   As   Single)   As   Long  
          If   Fix(inputVal)   <>   inputVal   Then  
                  test   =   Fix(inputVal)   +   1  
          Else  
                  test   =   inputVal  
          End   If  
  End   FunctionTop

3 楼sdrcxzy(大向)回复于 2005-08-01 15:09:30 得分 0

不对,1.00不行。Top

4 楼chewinggum(口香糖·个人二五计划第一年)回复于 2005-08-01 15:10:15 得分 0

测试代码:  
  Dim   i   As   Double  
  For   i   =   1.1   To   3   Step   0.1  
          Debug.Print   "test("   &   i   &   ")="   &   test(i)  
  Next  
   
  输出结果:  
  test(1.1)=2  
  test(1.2)=2  
  test(1.3)=2  
  test(1.4)=2  
  test(1.5)=2  
  test(1.6)=2  
  test(1.7)=2  
  test(1.8)=2  
  test(1.9)=2  
  test(2)=2  
  test(2.1)=3  
  test(2.2)=3  
  test(2.3)=3  
  test(2.4)=3  
  test(2.5)=3  
  test(2.6)=3  
  test(2.7)=3  
  test(2.8)=3  
  test(2.9)=3  
  Top

5 楼sdrcxzy(大向)回复于 2005-08-01 15:11:07 得分 0

说错了,楼上的不好意思。Top

6 楼chewinggum(口香糖·个人二五计划第一年)回复于 2005-08-01 15:16:08 得分 0

这样就赚100分,有点不好意思,呵呵Top

7 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2005-08-01 15:44:11 得分 0

简单哦:  
   
  写个函数:  
  FUNCTION   OO(BYVAL   II   AS   SINGLE)   AS   LONG  
  OO=(II+0.99999999999999999)  
  END   FUNCTION  
   
  测试:  
  Dim   I   As   Single  
  For   I   =   0.1   To   4   Step   0.1  
  Debug.Print   OO(I)  
  Next  
   
  结果:  
    1  
    1  
    1  
    1  
    1  
    1    
    1    
    1    
    1    
    1    
    2    
    2    
    2    
    2    
    2    
    2    
    2    
    2    
    2    
    2    
    3    
    3    
    3    
    3    
    3    
    3    
    3    
    3    
    3    
    3    
    3    
    4    
    4    
    4    
    4    
    4    
    4    
    4    
    4    
    4    
    4  
    5  
    5  
    5  
    5  
    5  
    5  
    5  
    5  
    5  
    5  
   
  只要让0.999...的精确度比你的输入多一位就够。  
  Top

8 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2005-08-01 15:45:04 得分 0

好像偶的代码最简单,也准确吧,哈哈,别和我抢分啦,我都好久没答题了。Top

9 楼crycoming(瞎编)回复于 2005-08-01 15:51:11 得分 0

我也凑热闹  
  Function   DoIt(a   As   Double)   As   Long  
          Dim   d   As   Double  
           
          d   =   a   -   CLng(a)  
          If   d   >   0   Then  
                  DoIt   =   CLng(a)   +   1  
          Else  
                  DoIt   =   CLng(a)  
          End   If  
           
   
  End   Function  
  Top

10 楼chewinggum(口香糖·个人二五计划第一年)回复于 2005-08-01 16:28:38 得分 0

WallesCai,你的边界没有处理好哦  
  用你的函数处理0.00看看,得到的结果是1哦,处理1.00得到结果为2,不符合要求!  
  呵呵Top

相关问题

  • 各位,请进!
  • 各位请进!
  • 各位请进!
  • 各位大大进~
  • 各位高手进
  • 各位大侠请进,各位前辈请进,各位同人请进!!!!!
  • 各位高手请进
  • vf问题各位请进
  • 各位大虾请进。。。。
  • 各位高手请进,

关键词

  • 函数
  • ceiling
  • inputval
  • doit
  • clng
  • 进位
  • test
  • 结果
  • fix
  • 处理

得分解答快速导航

  • 帖主:zhouyuzzzzzz

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo