The algebra of R is best viewed visually as vectors beginning at the origin(0) and ending with the real number®. Hence, the real number “r” is really a vector starting at 0 and ending at r. If “vector” squicks you out, think “ray” from geometry. In this setting, negatives indicate direction relative to 0. Negative numbers lie to your left side of the real line, and the positive numbers lie to your right side…
<----------------(negative)----0--------(positive---------->
A single real number® is really just a vector in R, with a sign and a magnitude:
<<<------------------------------0---------->®--------------------->>> {r positive}
<<<-------------------®<------0------------------------------------>>> {r negative}
Then adding real numbers becomes a matter of displacement, s+r :
<<<------------------------------0---------->®-------->(s)------------->>> {s,r positive}
<<<------------------------------0----------------------->(s+r)---------->>>
<<<------------------------------0----------------------->®------------->>> {s,r positive}
<<<------------------------------0--------------->(s)--------- ----------->>> {s,r positive}
<<<------------------------------0------>(r-s)---------------------------->>>
Multiplication is scaling and possibly flipping:
<<<------------------------------0---------->®-------------------------->>> {r positive}
(-r) is r, flipped
-(-r) is (-r), flipped, which is the original r
<<<--------------(-r)<----------0---------->®-------------------------->>> {r positive}
(-k*r) is flipping and stretching r
<<<------------------------------0-------------------->(2r) ------------>>> {r positive}
<<<------------------------------0----->(.5r)--------------------------->>> {r positive}
<<<—(2r)<-------------------0-------------------->(2r) ------------>>> {r positive}
<<<---------------(-.5r)<-----0----->(.5r)--------------------------->>> {r positive}
So multiplying a negative number with another negative number is flipping and stretching a negative number:
s=-3*-2=6:
<<<-------------------------(-2)<-----0--------------------------------------->>>
<<<-------------------------(-2)<-----0----->(-1*-2 = 2------------------->>>
<<<-------------------------(-2)<-----0------------------->(3*2=6)-------->>>
You can also view it from a counting perspective … viewing the count as a stock count from the perspective of A and B:
+2 ~ A gets 2 thingies from B
-2 ~ A gives 2 thingies to B
22 = +4~ A gets 2 thingies from B, twice
2-2 = -4~ A gives 2 thingies to B, twice
-2*-2 = -(2*-2) = - (A gives 2 thingies to B, twice) = B gives 2 thingies to A, twice
The vector/ray approach works better in general, in particular when fractional numbers are in play.