(Tested in both CIQ1 and CIQ2+ watches in simulator. Known to happen on real CIQ2+ watch)
Unlike C, Javascript and probably every other programming language in the world, 0.0 is treated as a true value.
Also, 0.0 is treated as true, but "0 == 0.0" is true (as it should be), which is logically incoherent. If x == y, one can't be true while the other is false.
I can't even post the code to the forums (as per usual), so it's all on pastebin:
https://pastebin.com/KKZGUu3m
Output:
0 == 0.0: PASSED....
0.0 is truthy: FAILED....
0 is falsey: PASSED....
All I can say is that Monkey C and Connect IQ have really laudable design goals and great potential, but I think stuff like this is a huge disincentive to devs. There's no substitute for testing, but we shouldn't have to test obvious language constructs to see if they work the same way as expected.
Furthermore, we still can't post code in the forums.... A huge disincentive to participate in the community. The amount of effort I had to expend just to post this bug report is ridiculous.
I get that Garmin has higher priorities, like promoting the Spider-Man watchface (hey, I liked Spider-Man: Homecoming) and not updating the Uber/Lyft apps.