以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数字精度问题,  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=177496)

--  作者:2900819580
--  发布时间:2022/5/24 21:55:00
--  [求助]数字精度问题,
SQL数据库,CGM总价 的数据类型设置为real()

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "CGM单价","CGM数量"
        dr("CGM总价") = dr("CGM单价") * dr("CGM数量")        
End Select

结果3000的数量*0.33的单价,得到 的是3000*0.33=990.0001

--  作者:有点蓝
--  发布时间:2022/5/24 22:05:00
--  
在Foxtable里设置为高精度
--  作者:2900819580
--  发布时间:2022/5/24 23:46:00
--  
以下是引用有点蓝在2022/5/24 22:05:00的发言:
在Foxtable里设置为高精度

老师,列设置数据类型不知在那里设置,用了以下代码,也不行。
    Dim zj As Decimal = dr("CGM单价") * dr("CGM数量")
        dr("CGM总价") = zj


--  作者:有点蓝
--  发布时间:2022/5/25 8:31:00
--  
3个列都改为高精度:http://www.foxtable.com/webhelp/topics/0036.htm
--  作者:2900819580
--  发布时间:2022/5/26 1:14:00
--  
以下是引用有点蓝在2022/5/25 8:31:00的发言:
3个列都改为高精度:http://www.foxtable.com/webhelp/topics/0036.htm

老师,我的是SQL数据库,加载进来的。


--  作者:狐狸爸爸
--  发布时间:2022/5/26 7:30:00
--  
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "CGM单价","CGM数量"
        dr("CGM总价") = cdec(dr("CGM单价")) * cdec(dr("CGM数量"))
End Select