Quick question: wouldn't 1?1:var always return 1?
if var is a float...
(1?1:var)/2
...becomes... (1.0/2)
...which equals 0.5 and is considered true when evaluated. But if var is an int... (1?1:var)/2
...becomes... (1/2)
...which equals 0 and is considered false when evaluated