以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于Round2函数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64699)

--  作者:ap9709130
--  发布时间:2015/2/27 12:36:00
--  关于Round2函数

以前一直没注意,今天发现个问题。

 

Dim a As Double = 215.91
Dim b As Double = 43.5
Dim c As Double = a*b

Output.show(c)
Output.show(Round2(c,2))

 

 

结果是:

 

9392.085
9392.08

 

没有四舍五入啊。


--  作者:Bin
--  发布时间:2015/2/27 14:10:00
--  
经过测试确实有问题是BUG 就0.85不可以其他值都可以.
--  作者:ap9709130
--  发布时间:2015/2/27 15:02:00
--  

晕啊

 


--  作者:狐狸爸爸
--  发布时间:2015/2/27 15:04:00
--  

可以这样处理:

 

Dim a As Double = 215.91
Dim b As Double = 43.5
Dim c As Double = a*b + 0.0000000001
Output.show(c)
Output.show(Round2(c,2))


--  作者:ap9709130
--  发布时间:2015/2/27 16:32:00
--  
我的系统里很多地方都用了 Round2函数,要改很多地方。
--  作者:ap9709130
--  发布时间:2015/2/27 23:22:00
--  

狐爸,

 

能升级一下这个函数吗?太多地方用了,每个都这么改,很难的。多谢


--  作者:don
--  发布时间:2015/2/28 15:59:00
--  

老大,能升级一下这个函数吗?


我135處用了這個函數,每个都这么改,很难的。多谢!!!


--  作者:don
--  发布时间:2015/3/1 22:16:00
--  
顶顶!
--  作者:有点甜
--  发布时间:2015/3/1 22:32:00
--  

 最新版,已经没有这个问题了。

 

 你也可自己定义个同名的函数进行处理,思路

 

Public Function Round2(val As Double, num As Integer) As Double
    Return Format(val, "#." & "000000000".Substring(0,num))
End Function


--  作者:ap9709130
--  发布时间:2015/11/8 23:04:00
--  

我反应的这个问题,2016还是没解决,晕啊!