注册 登录
编程论坛 VB6论坛

求教关于字符串转数字格式相加

ictest 发布于 2017-04-29 22:10, 2351 次点击
读TXT文本文件,读到满足条件的语句就截取字符串,字符串的格式类似于“123.4567891234”(小数点前3位,小数点后最少1位,最多8位),
想对此数据累加,所用的语句为 a = a + VAL(字符串),这样对吗?怎么最后得出来的数字为整数,无小数?
3 回复
#2
HVB62017-04-30 10:39
回复 楼主 ictest
您把整数和小数分开,再修改以下代码即可。
Private Sub Command1_Click()
  test
End Sub
Sub test()
sgg = BigNumAdd("1230981204973453434534510732", "64569845695683295334534534534586")
  MsgBox sgg
End Sub

'相加
Public Function BigNumAdd(A As String, B As String) As String
    Dim i As Integer, j As Integer
    Dim NoI As Integer
    Dim NextNo As Integer
    Dim s As Integer, t As Integer
    Dim Result As String
    Do
        NoI = NoI + 1
        If (Len(A) - NoI) < 0 And (Len(B) - NoI) < 0 Then
            If NextNo > 0 Then
                Result = NextNo & Result
            End If
            Exit Do
        End If
        If (Len(A) - NoI) < 0 Then
            s = 0
        Else
            s = Mid(A, Len(A) - NoI + 1, 1)
        End If
        If (Len(B) - NoI) < 0 Then
            t = 0
        Else
            t = Mid(B, Len(B) - NoI + 1, 1)
        End If
        Dim s_t As Integer
        s_t = s + t + NextNo
        NextNo = s_t \ 10
        Dim S_digits As String
        S_digits = CStr(s_t Mod 10)
        Result = S_digits & Result
    Loop
    BigNumAdd = Result
End Function


#3
xzlxzlxzl2017-04-30 10:42
最多11个有效位,用double数累加即可,无需拆开累加。
#4
ictest2017-04-30 15:01
谢谢两位的帮助,试了一下,其实只要Dim a As Double即可。
1