高分求救一个简单的问题:如何在VB里实现数值四舍五入?

liuxinghe99 2002-12-02 09:24:23
高分求救一个简单的问题:我需要求一个运算后的数值,并要求保留2位小数并四舍五入,如何在VB里实现?我使用的是round函数,但是该函数只能自动求前3个小数的四舍五入,而不能求所以小数自动四舍五入的值。不知何解,望高手赐教,高分相送!100分

例如:round(303433.5/30000)=10.11
而真正的四舍五入的指应该为:303433.5/30000=10.11455=10.12才对。
又如round(10.6146)=10.61,但是正确的结果应该为10.62
请问我如何实现》?
...全文
258 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlineboy 2002-12-03
  • 打赏
  • 举报
回复
int(x+0.5)
of123 2002-12-03
  • 打赏
  • 举报
回复
10.11455=10.12?
你这种算法看来需要自定义函数以及数学概念了。
ywpg 2002-12-03
  • 打赏
  • 举报
回复
X2=X*100
RESULT= INT(X2+.5)/100
YuCao 2002-12-03
  • 打赏
  • 举报
回复
这应该是你想要的结果吧!
I = (Int((I + .005) * 100) / 100)
frankkon 2002-12-03
  • 打赏
  • 举报
回复
唉!
你不知道什么是四舍五入!
Arcan 2002-12-03
  • 打赏
  • 举报
回复
是啊,先补小学的课。
qiqif 2002-12-03
  • 打赏
  • 举报
回复
不要用round用format就可以了
junglerover 2002-12-03
  • 打赏
  • 举报
回复
哥们,你逻辑混乱了,重新学习一下小学数学里四舍五入的概念吧。

303433.5/30000=10.11455=10.12 ?????

哈哈,哈哈。
qifanghcy 2002-12-03
  • 打赏
  • 举报
回复
自己写个函数来用,省得以后麻烦!这种程序又不是很困难!为什么不自己动手?
sala 2002-12-02
  • 打赏
  • 举报
回复
先round(303433.5/30000,3)=10.115
再round(10.115,2)=10.12
我看这是你对什么是四舍五入理解有误吧
如果你真的需要10.12这样的结果,那先进行小数点三位的四舍五入,再进行两位的四舍五入不就是了。
chenyu5188 2002-12-02
  • 打赏
  • 举报
回复
UP吧

楼上说的太仔细了。
canque 2002-12-02
  • 打赏
  • 举报
回复
round(10.6146)=10.61,但是正确的结果应该为10.62??????

解释一下? 呵呵,我觉得应该是10。61,仔细看看四舍五入的概念阿。

另外有一种方法:VB的Double类型转换成整型变量的时候,自动进行四舍五入。
也就是说, Integer = double *100
double2 = integer / 100

那么,这个DOUBLE变量内的值就是你所希望的保留2位的四舍五入值。
希望有3位那就把100换成1000了~~~
呵呵,希望对你有帮助。

不过,10.6146四舍五入应该是10.61,不是10.62.
10。61和10。6146的差的绝对值为:0。0046
10。62和10。6146的差的绝对值为:0。0054
那么显然10。61比10。62更加精确!
四舍五入的时候,不是从最后往前进的,而是看你希望保留的位数。
zyl910 2002-12-02
  • 打赏
  • 举报
回复
%整形
&长整形
@货币型
!单精度浮点型
#双精度浮点型
$字符串
zyl910 2002-12-02
  • 打赏
  • 举报
回复
303433.5#/30000#
zyl910 2002-12-02
  • 打赏
  • 举报
回复
=int(x*100+0.5)/100
liuxinghe99 2002-12-02
  • 打赏
  • 举报
回复
高分求救一个简单的问题:我需要求一个运算后的数值,并要求保留2位小数并四舍五入,如何在VB里实现?我使用的是round函数,但是该函数只能自动求前3个小数的四舍五入,而不能求所以小数自动四舍五入的值。不知何解,望高手赐教,高分相送!100分

例如:round(303433.5/30000,2)=10.11
而真正的四舍五入的指应该为:303433.5/30000=10.11455=10.12才对。
又如round(10.6146,2)=10.61,但是正确的结果应该为10.62
请问我如何实现》?
EpopeeLei 2002-12-02
  • 打赏
  • 举报
回复
用下面的代码,两个问题都解决了。
Debug.Print Round(a * 100) / 100
softrookie 2002-12-02
  • 打赏
  • 举报
回复
10.6146 如果保留两位应该是10.62,round函数有个参数议实现小数点后几位四舍五入:round(10.6146,3)保留三位。
如想实现你所说的四舍五入可以这样round(round(10.6146,3),2)
zyl910 2002-12-02
  • 打赏
  • 举报
回复
=int(x+0.5)

Round是四舍六入五成双
闲情漫步 2002-12-02
  • 打赏
  • 举报
回复
这个可以查msdn的,用round函数就可,具体格式自己查阅msdn.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧