以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]导出临时表的小数位数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=29514)

--  作者:cqlpjks
--  发布时间:2013/3/8 10:26:00
--  [求助]导出临时表的小数位数
某列小数位数已设置,生成临时表时正确,但导出后小数位数不正确,怎么解决?放指教。谢谢!
--  作者:狐狸爸爸
--  发布时间:2013/3/8 10:36:00
--  

对于原有数据,小数位数只影响显示格式,并不会改变真实的值。

你可以在命令窗口处理一下:

 

For Each dr As  DataRow in DataTables("xxx").DataRows

     if dr.IsNull("某列") = False Then

           dr("某列")  = Math.Round(dr("某列"),2)

     End If

Next

DataTables("xxx").Save()


--  作者:cqlpjks
--  发布时间:2013/3/8 11:50:00
--  

搞定。谢谢!但多列的怎么处理?


--  作者:cqlpjks
--  发布时间:2013/3/10 1:56:00
--  

只能这样吗?

For Each dr1 As  DataRow In DataTables( value & tjnj & "级有效分").DataRows
     If dr1.IsNull("平均分") = False Then
          dr1("平均分")  = Math.Round(dr1("平均分"),2)
     End If
     If dr1.IsNull("标准差") = False Then
          dr1("标准差")  = Math.Round(dr1("标准差"),2)
     End If
     If dr1.IsNull("目标3") = False Then
          dr1("目标3")  = Math.Round(dr1("目标3"),0)
     End If
     If dr1.IsNull("目标6") = False Then
          dr1("目标6")  = Math.Round(dr1("目标6"),0)
     End If
     If dr1.IsNull("目标9") = False Then
           dr1("目标9")  = Math.Round(dr1("目标9"),0)
     End If
     If dr1.IsNull("目标12") = False Then
           dr1("目标12")  = Math.Round(dr1("目标12"),0)
     End If
Next
DataTables( value & tjnj & "级有效分").Save()


--  作者:双轨制
--  发布时间:2013/3/10 21:45:00
--  

Dim nms() As String = {"A1","A2","A3","A4"}
For each nm As Sring in nms
    For Each dr As DataRow In DataTables("xxx").DataRows
        If dr.IsNull(nm) = False Then
            dr(nm) = Math.Round(dr(nm),2)
        End If
    Next
Next
DataTables("xxx").Save()

 


--  作者:cqlpjks
--  发布时间:2013/3/13 17:32:00
--  

搞定。谢谢!