Добрый день всем!
Целый день убил на поиск ошибки в коде, пока не понял, что булевское True считается равным -1.
Почему так? Я всегда считал, что True = 1, поэтому просто использовал значение булевской переменной в вычислениях.
Ниже привожу простой пример, который в результате выдаёт -1.
Целый день убил на поиск ошибки в коде, пока не понял, что булевское True считается равным -1.
Почему так? Я всегда считал, что True = 1, поэтому просто использовал значение булевской переменной в вычислениях.
Ниже привожу простой пример, который в результате выдаёт -1.
| Код |
|---|
Sub test() Dim n As Boolean Dim m as Integer n = True m = 1 MsgBox (n * m) End Sub |
Объясните, пожалуйста, почему результат с минусом. Проверено на Excel 2010 и Excel 2013. То, что можно заводить дополнительные переменные или ветки по условиям, я понимаю, но меня интересует сам факт отрицательного True.
Изменено: - 19.06.2017 09:18:30