Почему вычисления с переменными Long терпят неудачу в 2 ^ 31? - PullRequest
2 голосов
/ 06 мая 2019

Согласно этой документации , длинные переменные являются 64-битными переменными.

Однако, это терпит неудачу в ≈2 ^ 31 в следующем расчете:

Function Pyth(a As Long, b As Long) As Double
        Dim c_2 As Long

        c_2 = a ^ 2 + b ^ 2

        Pyth = c_2 ^ 0.5
End Function

Похоже, что вычисление может обрабатывать только 32-разрядное целое число со знаком, несмотря на то, что все переменные являются 64-разрядными. Почему это?

Я могу обойти это, используя Double, но это плохая практика. Есть ли способ обойти эту проблему с помощью целочисленных переменных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...