【发布时间】:2021-10-25 16:18:40
【问题描述】:
就我而言,在 VBA 中允许进行大于 15 位的计算,这会在第 15 位之后自动给你没有零 -> 更准确。
这个想法是,计算可以在 VBA 中完成。想要的结果(1,07007000700007000007654321)可以通过格式转换以字符串数据类型在excel中呈现(只是在Excel表格中显示不计算)
问题:
1 + 0.07007000700007000007654321
-> Excel 给出 1.07007000700007000008
期望值:1.07007000700007000007654321
这是我的代码:
Sub test()
Dim y As Double
Dim m As String
'cell(1,1) is where 0.07007000700007000007654321
y = 1 + Cells(1, 1)
m = CStr(y)
Cells(2, 1).Value = m
End Sub
感谢您的时间和知识,伙计们!
【问题讨论】:
-
需要将其存储为字符串。然后解析字符串以将值添加到您关心的部分,然后将它们连接在一起。 VBA 将仅存储 15 个 sig 数字,一旦您将数字加 1,double 会将其四舍五入为 15 sig dig。
-
还有这个stackoverflow.com/questions/32943905/…,它是长乘法的一个例子。它可以很容易地适应加法,但正如已经指出的那样,仍然需要实现所有功能,更不用说减法和除法了。如果您的问题是关于加法的,我很乐意尝试在同一行上发布答案。