ok well I ran into a problem where I needed to check if two strings matched identically but because their values were numerical, == and === were returning true. by design it's prolly NOT a bug but either way, incase anyone else runs into the issue i figured i'd mension it.
//echo -a $iif(001 == 01,t,f) -=- $iif(001 === 01,t,f)
result: t -=- t
solution: put a dot in front of it
//echo -a $iif(.001 == .01,t,f) -=- $iif(.001 === .01,t,f)
result: f -=- f
I know its a rare case, just happened to stumble upon it.. either way it might be a good idea to add some other form of === or something to take $v1 and $v2 as string literals and compare them rather than determining if the values are a string or a number.
since I was expecting padded numbers, i chose to place a dot in front to convert it from being padded to being a decimal, which makes the difference in how the if works. either way, this was all happening inside variables and took a minute to figure out why, if nothing else its a good read for anyone who may have had the same issue. since it was variables, it was $+(.,%var) == $+(.,%othervar) but i just made it simplistic to illustrate the problem I encountered.