首页 > 解决方案 > 将大数传递给函数时系统溢出

问题描述

我正在尝试编写一个程序来模拟太阳系,并将大量数字传递给一个函数来计算引力。有问题的代码行是:

Earth.ptyForce = CalculateForce(Earth.ptyMass, Sun.ptyMass, dblSeparation)

在哪里:

我刚刚得到一个系统溢出,我怀疑这是因为数字太大,有什么办法解决这个问题吗?我考虑过只将较小的数字传递给函数并扩大它们,但如果可能的话,我宁愿避免这样做。

以防万一它需要CalculateForce函数如下:

Public Function CalculateForce(ByVal intMass1 As Integer, ByVal intMass2 As Integer, ByVal dblDistance As Double)
    dblDistance *= dblDistanceScalar
    Return dblGravitationalConstant * intMass1 * intMass2 / dblDistance ^ 2
End Function

该错误具体为:

System.OverflowException: '算术运算导致溢出。'

标签: vb.netstack-overflow

解决方案



推荐阅读