以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  使用round2函数后仍然计算错误。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=176385)

--  作者:Phoebe菲比
--  发布时间:2022/4/11 11:39:00
--  使用round2函数后仍然计算错误。

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220411113803.png
图片点击可在新窗口打开查看
目前我遇到的问题,使用了四舍五入函数,但是金额变大后,四舍五入还是会有错误。
错误如截图。


这是我写的代码:表事件--->DataColChanged事件
 Case "付款金额"
        If e.NewValue Is Nothing Then
            dr1("税额") = Nothing
            dr1("不含税金额") = Nothing
        Else
            Dim tax As Single = dr1("税率")
            dr1("税额") = round2(e.NewValue * tax ,2)
            dr1("不含税金额") = dr1("付款金额") - dr1("税额")
        End If
End Select



图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220411113758.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/4/11 11:47:00
--  
没看出来什么错误?

把代码里几个列的列类型都改为高精度
--  作者:Phoebe菲比
--  发布时间:2022/4/11 11:57:00
--  
还是会出现这样的问题,输入1000000没有问题,但是输入大于100万的数字就会算错。
但是大于100万带小数位的不会出错?
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20220411115555.png
图片点击可在新窗口打开查看

--  作者:Phoebe菲比
--  发布时间:2022/4/11 12:01:00
--  
在表事件中把税率的类型改成decimal就行了。