直觉(不能肯定正确,当然也不能肯定错误)告诉我,“四舍六入五成双”中的“四”<=4,“六”>=6,<4“五”<6,具体代码没写过。
--------------------------------------------------------------------
Made by Thirdapple's Studio
--------------------------------------------------------------------
Made by Thirdapple's Studio
解决方案 »
- 关于Chr()函数的问题
- 使用mapinfo professional+vb+asp可以开发webgis平台吗?
- 我用VB写了一个程序导出Execel的报表文件,而且写死了文件的页面设置,为什么到了另外一部电脑上导出的页面格式就变了呢
- 如何在windows启动时加载我的.dll
- 求一段快捷键的代码
- 有一套VB写的进销存管理软件想放到网上让大家下着玩,不知道哪里有空间??
- :)vb线程插入??
- DataGrid控件,如何实现不保存退出呢?
- 关于客户端VB程序对服务器端数据库访问的问题!如何让查询和计算在服务器端执行,请教!
- VB程序的移交控制权的问题
- 兄弟有难题急于求解,高分请教各位
- VB中怎样做DLL
关注!是否也与系统的float运算误差有关?
MsgBox Round(1.035, 2)
MsgBox Round(1.055, 2)
为什么分别得到1.03和1.06这样的结果
'MainNumber是要转化的数,Number要保留的位数
Private Function CRound(MainNumber As Single, Number As Single) As Single
CRound = CInt(MainNumber * 10 ^ Number + 0.5) / 10 ^ Number
End Function
http://support.microsoft.com/default.aspx?scid=kb;en-us;q42980
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174155
我一直这样用:Format(1.035, "#.00"),结果是正确的。
Round(CDec(1.035), 2)其中CDec函数就是把数字转为Decimal数据类型,Decimal是专门为10进制运算准备的,不能将变量声明为 Decimal 类型。但是,可创建一个 Variant ,其子类型为使用 Cdec 函数的 Decimal。
Dim v As Double, myval As Double, n As Integer
n = 2
myval = 1.055
'myval = 1.035
v = Format(myval, "#." + String(n, "0"))
Debug.Print v
今天我又长见识了~~~~~ ^_^