首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

:怎么把一个小数转换成规定的小数位数

2012-01-21 
各位大哥:如何把一个小数转换成规定的小数位数如题:如何把一个小数转换成规定的小数位数,如把一个浮点数3.

各位大哥:如何把一个小数转换成规定的小数位数
如题:如何把一个小数转换成规定的小数位数,如把一个浮点数3.523转换为3.5之类的,要求写一个函数.在EXCEL中是a   =   roundup(b,c)这种形式,但现在我要把这种功能转换到VB中,不知该怎么写函数,忘各位高手求救!感激不尽!!

[解决办法]
用round(b,c)这个函数可以
[解决办法]
例如a是存放你的小数的变量,b存放的是要保留的位数

a = (Int(a * (10 ^ b))) / (10 ^ b)
Debug.Print a

例:将3.1415926保留三位小数
a=3.1415926
b=3
a = (Int(a * (10 ^ b))) / (10 ^ b)
Debug.Print a
显示3.141
[解决办法]
你说的向上舍入,但怎么又说“如把一个浮点数3.523转换为3.5之类的”?应该是3.6吧。
另外,负数应该怎么向上舍入,如果-3.523向上舍入1位小数是-3.5的话,那你可以用我写的下面这个函数。

Private Function RoundUp(dblX As Double, intY As Integer) As Double

Dim intZ As Integer

intZ = intY * 10
If dblX > 0 Then
RoundUp = Abs(Int(-dblX * intZ)) / intZ
Else
RoundUp = Fix(RoundUp * intZ) / inz
End If

End Function

[解决办法]
不好意思,else后面那句写错了,应该是:RoundUp = Fix(dblX * intZ) / intZ
[解决办法]
http://topic.csdn.net/u/20080517/19/8b95e41a-2ffa-4897-894b-fbd7b1118285.html

探讨
学程序必须得动脑呀!
你把1楼的那句代码写到你的 Sub 中,试着传入不同的参数,也能从结果看出‘苗头’啊!


Round()函数:返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

语法:Round(expression [,numdecimalplaces])


Round()函数语法有如下几部分:

部分       描述
expression必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces可选的。数字值,表示进行四舍五入运算…

[解决办法]
http://support.microsoft.com/kb/196652/EN-US/
这里有各种规则的Round函数,自己挑几个。

热点排行