Most programming languages don’t behave that way, either.
Why would we have to hold Excel to higher standards?
Now, that Excel stores binary floats, but tries to pretend to use decimal ones, that’s something I think we can blame it for.
From section 2 of https://people.eecs.berkeley.edu/~wkahan/Mindless.pdf:
Some parentheses in Microsoft’s Excel 2000 spreadsheet possess uncanny powers: Values Excel 2000 Displays for Several Expressions
Expression 1.23456789012345000E+00 <– Entered to help count digits
V = 4/3 displays… 1.33333333333333000E+00 Does Excel carry 15 sig. dec.?
W=V- 1 3.33333333333333000E-01 Whence comes the 15th 3 ?
X = W*3 1.00000000000000000E+00 Where went all 15 of the 9s ?
Y=X- 1 0.00000000000000000E+00 They all went away !
Z = Y*2^52 0.00000000000000000E+00 Really all gone.
(4/3 - 1)*3 - 1 0.00000000000000000E+00 Yes, gone.
((4/3 - 1)*3 - 1) -2.22044604925031000E-16 (But not ENTIRELY gone !)
((4/3 - 1)*3 - 1)*2^52 -1.00000000000000000E+00 Excel’s arithmetic is weird.