标题:求教关于字符串转数字格式相加
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
已结贴  问题点数:20 回复次数:3 
求教关于字符串转数字格式相加
读TXT文本文件,读到满足条件的语句就截取字符串,字符串的格式类似于“123.4567891234”(小数点前3位,小数点后最少1位,最多8位),
想对此数据累加,所用的语句为 a = a + VAL(字符串),这样对吗?怎么最后得出来的数字为整数,无小数?
搜索更多相关主题的帖子: 文本文件 字符串 小数点 
2017-04-29 22:10
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:320
专家分:561
注 册:2013-10-30
得分:10 
回复 楼主 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


2017-04-30 10:39
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:10 
最多11个有效位,用double数累加即可,无需拆开累加。
2017-04-30 10:42
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
谢谢两位的帮助,试了一下,其实只要Dim a As Double即可。
2017-04-30 15:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476536-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.252934 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved