Наткнулся в легаси коде на условие с double, а не с boolean. Сначала я подумал, что это тоже самое, что и «не равно ноль». Но это не так, т.к. результат не совпадает.
Все нижеприведенные переменные - double. (Извините за форматирование, пишу с мобильника).
Если я меняю «c-d» на «c-d<>0», то результат меняется. «c-d» - это же double, каким образом оно конвертится в boolean? Как тоже самое можно написать «нормальным» языком.
После долгого копания я понял, что «c-d» шире чем «c-d<>0». Т.е. если писать нормально, то надо ещё какое-то условие к «c-d<>0» добавлять.
Заранее спасибо за помощь.
Все нижеприведенные переменные - double. (Извините за форматирование, пишу с мобильника).
Код |
---|
If a<>0 And b<>0 And c-d And f<>0 Then ... End If |
Если я меняю «c-d» на «c-d<>0», то результат меняется. «c-d» - это же double, каким образом оно конвертится в boolean? Как тоже самое можно написать «нормальным» языком.
После долгого копания я понял, что «c-d» шире чем «c-d<>0». Т.е. если писать нормально, то надо ещё какое-то условие к «c-d<>0» добавлять.
Заранее спасибо за помощь.