Roughly speaking (my interpretation):
It's supposed to be transparent if you store a string or a number to a scalar. Operators try an interpretation of operands according to their type.¹
Storing a number is subject of normalization, since 042.2, 42.20 and 42.2 all represent the same number.²
But if you store a string by quoting these numbers no information loss is allowed, every zero is a valid character.
So by reassigning a numeric value ( + is a numerical operator) the number gets normalized.
Cheers Rolf
(1) Thats why perl has (at least) 2 flavors for many operators, e.g. eq and == (see Equality Operators) , OTOH Javascript uses + also for concatenation of strings causing many new problems inexistent in perl.
(2) which may cause new problems, since many dezimal fractions can't be represented as floats w/o a little information loss. (see Re: eq vs ==)
In reply to Re^3: substitution "0" in decimals
by LanX
in thread substitution "0" in decimals
by Sun751
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |