The problem is systemic to floating point numbers. Numbers that look nice and neat in base 10 end up being repeating decimals in binary, then they're truncated to fit in a 32 bit float. Then every time you add two numbers together the result is truncated and you get accumulated error. Tweaks could be made to improve consistency in torque script for these test cases, but the underlying problem would still exist.
You should never make a comparison like "if myfloat == 1.0" in any programming language. If your program requires exacting comparison of 2 numbers you should be using integers.