Jon is right.
Double -- is a coercer like +0, *1, that is, they force Excel to convert numbers stored as text and logical values into numbers. So...
=--TRUE --> 1
=TRUE+0 --> 1
=TRUE*1 --> 1
By the way, -- and +0 are equally fast and both faster than *1.
If you wish, you can change...
--(ISNUMBER(...))
to
ISNUMBER(...)+0