Foxtable(狐表)用户栏目专家坐堂 → 设置小数位数


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

主题:设置小数位数

美女呀,离线,留言给我吧!
漂亮美眉vszh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8064 威望:0 精华:0 注册:2013/5/30 11:27:00
设置小数位数  发帖心情 Post By:2016/1/30 20:39:00 [显示全部帖子]

先求出某一行的最大小数位数,并将这一行的所有的数字行设置成最大的小数位数
1.求出某一行的最大小数位数,附给i
2.把某行某列的数值用ROUND,设转置位数,但怎么不动,没反映
If e.DataRow("规格标准") <> "汇总比率" Or e.DataRow("规格标准") <> "汇总" Then
    Dim i As Integer
 i = e.DataRow("实测值样品1").tostring().length - e.DataRow("实测值样品1").Tostring().lastindexof(".")-1
If e.DataRow("实测值样品2").tostring().length - e.DataRow("实测值样品2").Tostring().lastindexof(".")-1 > i Then
i = e.DataRow("实测值样品2").tostring().length - e.DataRow("实测值样品2").Tostring().lastindexof(".")-1
End If
If e.DataRow("实测值样品3").tostring().length - e.DataRow("实测值样品3").Tostring().lastindexof(".")-1 > i Then
i = e.DataRow("实测值样品3").tostring().length - e.DataRow("实测值样品3").Tostring().lastindexof(".")-1
End If
If e.DataRow("实测值样品4").tostring().length - e.DataRow("实测值样品4").Tostring().lastindexof(".")-1 > i Then
i = e.DataRow("实测值样品4").tostring().length - e.DataRow("实测值样品4").Tostring().lastindexof(".")-1
End If
If e.DataRow("实测值样品5").tostring().length - e.DataRow("实测值样品5").Tostring().lastindexof(".")-1 > i Then
i = e.DataRow("实测值样品5").tostring().length - e.DataRow("实测值样品5").Tostring().lastindexof(".")-1
End If
If e.DataRow("实测值样品6").tostring().length - e.DataRow("实测值样品6").Tostring().lastindexof(".")-1 > i Then
i = e.DataRow("实测值样品6").tostring().length - e.DataRow("实测值样品6").Tostring().lastindexof(".")-1
End If
MessageBox.Show(i)
If e.DataRow("实测值样品1") IsNot Nothing Then
e.DataRow("实测值样品1") = round2(e.DataRow("实测值样品1"),i)
End If
If e.DataRow("实测值样品2") IsNot Nothing Then
e.DataRow("实测值样品2") = round2(e.DataRow("实测值样品2"),i)
End If
If e.DataRow("实测值样品3") IsNot Nothing Then
e.DataRow("实测值样品3") = round2(e.DataRow("实测值样品3"),i)
End If
If e.DataRow("实测值样品4") IsNot Nothing Then
e.DataRow("实测值样品4") = round2(e.DataRow("实测值样品4"),i)
End If
If e.DataRow("实测值样品5") IsNot Nothing Then
e.DataRow("实测值样品5") = round2(e.DataRow("实测值样品5"),i)
End If
If e.DataRow("实测值样品6") IsNot Nothing Then
e.DataRow("实测值样品6") = round2(e.DataRow("实测值样品6"),i)
End If

End If
Tables("全检子表").Rows(1)("实测值样品2") = Math.Round(Tables("全检子表").Rows(1)("实测值样品2"),2)
MessageBox.Show(Tables("全检子表").Rows(1)("实测值样品2"))
3.在命令窗口执行了这句代码,同样也出不来
Tables("全检子表").Rows(1)("实测值样品2") = Math.Round(Tables("全检子表").Rows(1)("实测值样品2"),2)
MessageBox.Show(Tables("全检子表").Rows(1)("实测值样品2"))

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8064 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2016/2/1 15:32:00 [显示全部帖子]

老师们帮我看看这道题~~~

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8064 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2016/2/1 16:05:00 [显示全部帖子]

以下是引用大红袍在2016/2/1 15:33:00的发言:
测试没问题啊,你到底想问什么,上传例子测试。
1.在命令窗口执行了这句代码,同样也出不来
Tables("全检子表").Rows(1)("实测值样品2") = Math.Round(Tables("全检子表").Rows(1)("实测值样品2"),2)
MessageBox.Show(Tables("全检子表").Rows(1)("实测值样品2"))
执行不成功,

2.Dim str As String = "123.45678"
str = math.Round(val(str), 2)
msgbox(str)

同样的代码,这样就能成功,放表事件就不行了~~
 

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8064 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2016/2/1 16:06:00 [显示全部帖子]

我的此列本来就是双精度列,所以没用VAL转换~~

 回到顶部