以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  计算问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=71026)

--  作者:cuicuibing
--  发布时间:2015/7/3 13:44:00
--  计算问题
有一列为规格型号,如下:

规格型号
45*20
155*358

如何能够读出出  45  20   155   358这些数字。
数字的位数可能是1位数,或者2、3位数,也可能是带小数的。
如35.5
请教。
目的是读出数字后,自动计算。

--  作者:大红袍
--  发布时间:2015/7/3 14:02:00
--  
Dim str As String = "45*20"
Dim ary() As String = str.Split("*")
msgbox(ary(0))
msgbox(ary(1))

--  作者:cuicuibing
--  发布时间:2015/7/3 14:21:00
--  
谢谢版主。如果是
45*46

55*58*57的如何处理。

有的是有一个*,有的有2个*

--  作者:大红袍
--  发布时间:2015/7/3 14:26:00
--  

你要怎样计算?

 

Dim str As String = "45*20*3434"
Dim ary() As String = str.Split("*")
msgbox(ary(0))
msgbox(ary(1))

msgbox(ary(2))


--  作者:cuicuibing
--  发布时间:2015/7/3 14:50:00
--  
If e.DataCol.Name = "部件规格" And  e.DataRow("工段") = "裁布" Then
       Dim str As String = e.DataRow("部件规格")
       Dim ary() As String = str.Split("*")
       e.DataRow("数量") = "ary(0)*2 + ary(1)*2"
End If

 e.DataRow("数量") = "ary(0)*2 + ary(1)*2" 这一句不行,应该如何修改。

--  作者:大红袍
--  发布时间:2015/7/3 14:52:00
--  
If e.DataCol.Name = "部件规格" And  e.DataRow("工段") = "裁布" Then
    Dim str As String = e.DataRow("部件规格")
    Dim ary() As String = str.Split("*")
    Dim sum As Double = 0
    For Each a As tring In ary
        sum += a*2
    Next
    e.DataRow("数量") = sum
End If

--  作者:cuicuibing
--  发布时间:2015/7/3 14:53:00
--  
显示从字符串“ary(0)*2 + ary(1)*2” 到类型“double”的转换无效
--  作者:大红袍
--  发布时间:2015/7/3 14:56:00
--  
看6楼