I had a strange bug that I just found the source of in my code.
"1" + .88 // 10.88
What's going on here?
When adding a number and a string (whatever their order), the number is converted to a string and then the two are concatenated.
.88.toString()
is
"0.88"
So you get the string
"10.88"
which appears as
10.88
in most contexts (for example in an HTML input).
If you want a specification based analysis, it starts here with
Then the number to string conversion with the leading 0.is described here:
(s=88, k=2, n=0)
0 is coming from .88.
"10.88", not10.88.