Hi,

lorieul schrieb:
Hello to all,

I have found a fancy behavior of Calc but I cannot decide whether it is
a bug or a "feature". Hence I was looking for your advice before posting
a bug report (if required).

That is good. It is https://bugs.documentfoundation.org/show_bug.cgi?id=37271


   1. Open LO Calc
   2. In A1 enter formula "=1-2^2" and press enter key
      The result shown is -3 which is ok since
      1-2² = 1-(2²) = 1-4 = -3
   3. In A2 enter formula "=-2^2" and press enter key
      I would expect this to be treated as -2² = -(2²) = -4
      But Calc considers it as (-2)² = +4
      Quite obviously, a work around is to define the formula as
      "=-(2^2)" which indeed returns -4

I've checked the wiki page dedicated to operators [1] but it does not
give much information on operator precedence.

 From my standpoint, both examples show an inconsistent behavior of Calc.
For me, either we should have both 1-2^2 = 1+4 = 5 and -2^2 = +4
Or we should have both 1-2^2 = 1-4 = -3 and -2^2 = -4

A minus can be a binary operator subtraction or a unary operator sign.
In "=1-2^2" there is a operand left and right of the minus, so it is a binary operator. This means calculate its operands and then subtract. In "=-2^2" there is no operand left. Therefore the minus can only be a unary operator, which means, it is a sign of the number. So Calc takes the number -2 and puts it to the power 2.


However, perhaps some of you have a different view point on the matter ?
In other words, is that a bug or is it perfectly normal ?

It is no bug, but a bad UI, because pupils are thought, that -2² is -4. One solution to fit common understanding to the formal term interpretation you can see in Gnumeric. It simple does not allow it. When the user enters =-2^2 it automatically adds brackets, so that it becomes (-2)^2 and the users knows the meaning unambiguous.

To force a result of -4 you need to tell Calc, that the minus is a binary operator. The formula "=0-2^2" would do that.


Of course changing such behavior will cause a hell lot of trouble in
existing documents… but perhaps the operator precedence should be
explicitly specified on the wiki ?

The precedence is defined in ODF http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html#Operators

Kind regards
Regina


--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to