在我对这里问题的回答中:https://math.stackexchange.com/questions/2093497/finding-number-of-coprime-tuples-from-1-to-n/2094773#2094773 在 Math SE 上,我目前收到以下行的运行时错误:
P=599*601
错误消息是运行时错误 6 溢出
P 定义为双精度类型的公共变量。我还在我的"模"函数中使用了p,定义为双精度。
为什么会发生这种情况,我该怎么做才能纠正它?
我找到了一个解决方法:如果我将规定的行更改为:
P=359999
则不会发生错误。因此,为什么 P=599*601 线会给出错误?
经过研究,我发现这个怪癖可以通过以下代码来解决:
Dim Prime1 as Long
Dim Prime2 as Long
Public P as Long
...
P=Prime1 * Prime2
问题的原因可能是由于将整数类型分配给 p,因为当乘以整数时