Foxtable(狐表)用户栏目专家坐堂 → 赋值赋得小数不见了,是程序bug吗?


  共有11246人关注过本帖树形打印复制链接

主题:赋值赋得小数不见了,是程序bug吗?

帅哥哟,离线,有人找我吗?
lrj03
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1117 威望:0 精华:0 注册:2011/5/6 12:46:00
赋值赋得小数不见了,是程序bug吗?  发帖心情 Post By:2011/5/20 10:38:00 [只看该作者]

 Dim dr As DataRow
   dr=DataTables("明细清单").DataRows(0)
   Dim S0 As Double=0
   Dim s1 As Double=0
   Dim s2 As Double=0
   Dim s3 As Double=0
   Dim ye As Double=0


      For Each dr  In DataTables("明细清单").DataRows
        If dr("类型")="付款计划" AndAlso dr("期数")<Vars("qishu")  Then
              S0 = S0 + dr("金额")
        End If
        If dr("类型")="付款计划" AndAlso dr("期数")=Vars("qishu")  Then
              S1 = S1 + dr("金额")
        End If
        If dr("类型")="收款" AndAlso dr("期数")<Vars("qishu")+0.5  Then
              S3 = S3 + dr("金额")
        End If

      Next
              s2=s0+s1
              ye=s3-s2

   Dim r As Row
   r=Tables("期数汇总").Rows(0)
   r("金额")=s0
   r=Tables("期数汇总").Rows(1)
   r("金额")=s2
    
output.show(s2)
output.show(r("金额"))
问题出在红色标记的语句中,output.show(s2)=1604672.42

                                 ,output.show(r("金额"))=1604672

     小数点后的.42不见了,这是怎么回事呢?怎么避免这状况?用乘100的值去运算,最后再除100来解决这问题吗?

[此贴子已经被作者于2011-5-20 10:48:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/20 10:50:00 [只看该作者]

金额列的数据类型不对,改为双精度小数


 回到顶部
帅哥哟,离线,有人找我吗?
lrj03
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1117 威望:0 精华:0 注册:2011/5/6 12:46:00
  发帖心情 Post By:2011/5/20 11:05:00 [只看该作者]

谢谢,原本"金额"列是设为单精度小数,现改为双精度小数,问题解决了

 回到顶部