excel - 如何在excel中添加两个非常大的数字?
问题描述
我想在excel中存储两个非常大的数字,然后添加它们。我的号码是这样的:
324930313630311035156280330632053510851055146511
当我在单元格中输入这个数字时,它只显示 15 位数字。当然我知道我可以将格式单元格更改为 text,但是当我将其更改为 text 时,它是不可计算的。
非常感谢
解决方案
这是一个用户定义的函数,它将添加以字符串格式输入的非常大的正整数。udf 返回字符串格式以保留所有数字:
Public Function superadd(s1 As String, s2 As String) As String
Dim L1 As Long, L2 As Long, L3 As Long, Carry As Long
Dim v1 As Long, v2 As Long, zum As Long
L1 = Len(s1)
L2 = Len(s2)
L3 = Application.Max(L1, L2)
If L1 > L2 Then
For i = 1 To L1 - L2
s2 = "0" & s2
Next i
Else
For i = 1 To L2 - L1
s1 = "0" & s1
Next i
End If
Carry = 0
For i = L3 To 1 Step -1
v1 = CLng(Mid(s1, i, 1))
v2 = CLng(Mid(s2, i, 1))
zum = v1 + v2 + Carry
If i = 1 Then
superadd = CStr(zum) & superadd
Exit For
Else
If zum > 9 Then
superadd = Right(CStr(zum), 1) & superadd
Carry = CLng(Left(CStr(zum), 1))
Else
superadd = CStr(zum) & superadd
Carry = 0
End If
End If
Next i
End Function
像这样使用:
推荐阅读
- postgresql - 从 postgresql 上损坏的外键剩余部分中恢复
- reactjs - Apollo GraphQL 反应突变未正确更新 UI
- java - 用Java将字节数组上传到FTP
- python - 表格化 lmfit 拟合参数
- python - python乌龟不会改变颜色
- macos - (/usr/local/lib/libwep) 中的代码签名在 MacOS 10.14.6 上无效
- amazon-web-services - AWS Elastic Transcoder 在合并带音频和不带音频的不同 mp4 文件时抛出错误
- android - Flutter ReorderableListView - 拖动灵活项目在拖动时增长到屏幕大小
- octave - 通过八度音阶解析错误我应该理解什么?
- asp.net-core - 为什么我应该在我的 .net 核心项目架构中使用依赖注入?