| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3157 人关注过本帖
标题:[求助 讨论]如何实现四舍五入取整?
只看楼主 加入收藏
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
单从这两个函数来看.是不可以的.

如果一定要自己写..
这样试试..
Function Round(X As Double, DP As Integer) As Double
     X = X * 10 ^ DP + 0.5
     Round = Int(X) / 10 ^ DP
End Function



Public Function Round(ByVal dblNumber As Double, Optional ByVal intFactor As Integer = 0) As Double
    Round = Fix(cdbl(dblNumber * 10 ^ intFactor + 0.5 * Sgn(dblNumber))) / 10 ^ intFactor
End Function

我的msn: myfend@
2007-12-15 12:13
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
这两个函数..
可能比系统的Round函数..更习惯于大家平时的应用中..
因为vb6中的Round函数.虽说是四舍五入..但实质是四舍六入五留双.

看个例子..
x1=Round(1.25,1)
x2=Round(1.35,1)
大家看x1和x2分别是多少.
在vb里执行一下..就会发现问题..
x1=1.2     '没有进位
x2=1.4     '进位了
这就是奇进偶不进.
这不是一个bug.而是符合一个国际标准.
所以使用上面两个函数.在平时中可能更符合大家的应用.

我的msn: myfend@
2007-12-15 12:25
一路同行
Rank: 1
来 自:河北省
等 级:新手上路
帖 子:167
专家分:0
注 册:2006-12-24
收藏
得分:0 
回复 12# 的帖子
谢谢了
又使我学到了许多知识

愿意和大家相互帮助 解决其中的难题 我相信只有共享才能共赢
2007-12-17 11:48
一路同行
Rank: 1
来 自:河北省
等 级:新手上路
帖 子:167
专家分:0
注 册:2006-12-24
收藏
得分:0 
回复 11# 的帖子
你写的DP 是什么意思啊?
还有 X = X * 10 ^ DP + 0.5 又是什么意思啊?
等待你的指教

愿意和大家相互帮助 解决其中的难题 我相信只有共享才能共赢
2007-12-17 11:52
西风独自凉
Rank: 8Rank: 8
等 级:贵宾
威 望:43
帖 子:3380
专家分:28
注 册:2007-8-2
收藏
得分:0 
原帖由 [bold][underline]multiple1902[/underline][/bold] 于 2007-12-14 21:10 发表 [url=http://bbs.][/url]
谁说不能达到的?

Int(x+0.5)不就是了。

這樣有意義麼

2007-12-17 11:59
dandanmei
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-11-30
收藏
得分:0 
4楼的说的对啊
fix(x+0.5)和int(x+0.5)就能实现啊
比如你要精确到千分位
   fix(x*1000+0.5)就行了啊
没那么复杂啊
2007-12-18 10:12
dandanmei
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-11-30
收藏
得分:0 
不好意思, 是 fix(x*1000+0.5)/1000
2007-12-18 10:14
快速回复:[求助 讨论]如何实现四舍五入取整?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014935 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved