演算子の優先順位
以上のような規則は、しばしば混乱している。また、身近なコンピュータプログラム(ソフトウェア)などでの扱いが算数教育などでの扱いと違いがあったりする場合には、問題だと主張されることなどもある。
単項演算子としてのマイナス記号(負号)の扱い方はいくつかある。普通に書いた場合、−3 は −(3) = −9 を意味するが、数式を扱うアプリケーションやプログラミング言語(特に Microsoft Office Excel やプログラミング言語bc)では単項演算子を二項演算子より優先しているためマイナス記号は冪乗より優先順位が高く、−3 は (−3) = 9 と解釈される。意図した結び付きにならない場合は括弧を使って明示しなければならないし、優先順位をあてにせずに常に括弧を付けるという防御の姿勢をとることもある。
同様にスラッシュ記号 ('/') を数式で 1/2x のように使う際にも曖昧さがある。これを 1 ÷ 2 × x の意味で書いているなら、除算記号を分数を使った乗算で表現していると解釈でき、次のようになる。
1 ÷ 2 × x = 1 × 1 2 × x = 1 2 x {\displaystyle 1\div 2\times x=1\times {\tfrac {1}{2}}\times x={\tfrac {1}{2}}x}
a + ( b × x ) + ( c × x 2 ) + ( d × x 3 ) {\displaystyle a+(b\times x)+(c\times x^{2})+(d\times x^{3})}
と書かねばならない。
一方で、演算子の優先順位があるために、括弧の多用が必要になる場合もある。前述の多項式をホーナー法で計算する場合、次の式のように変形するのであるが、
( ( d × x + c ) × x + b ) × x + a {\displaystyle ((d\times x+c)\times x+b)\times x+a}
もし、演算子の優先順位が無く、左から右に計算するという規則だけだったならばこの式には括弧は不要である。
以上のように、演算子の優先順位というものは、そのような規則があったほうが良い場合のほうが比較的多いため、広く使われている暗黙の規則、という程度のものである。
数学史的には、代数学的記法が導入された際、乗法が加法より優先されるようになった。したがって、3 + 4 × 5 = 4 × 5 + 3 = 23 となる。冪乗が16世紀から17世紀に導入されたとき、加法と乗法より優先されるとされ、底の右肩に冪指数を記述するようになった。したがって 3 + 5 = 28 であり、3 × 5 = 75 となる。演算順序を変えたい場合、かつては括線(英語版)(オーバーラインまたは下線)を使っていた。今日では括弧を使って、先に評価すべき式の部分を明示的に囲む。したがって、乗法の前に加法を行うなら (2 + 3) × 4 = 20 などとし、冪乗の前に加法を行うなら (3 + 5) = 64 などとする。
電卓は機種によって演算子の優先順位が異なる場合がある。もっとも、電卓は数式を評価しているのではなく、単に操作順が数式に類似しているに過ぎず、本質的には、計算機としての内部の計算モデルの違いによるものである。
多くのいわゆる普通の電卓は、入力された順に計算する。例えば、
1 + 2 × 3 = 9 {\displaystyle 1+2\times 3=9\;}
となる。これに対し、たいていの「関数電卓」は、加減算中の乗除算について別に計算できるバッファを持っており、
1 + 2 × 3 = 7 {\displaystyle 1+2\times 3=7\;}
となる。Microsoft Windowsに添付されているアプリの電卓も、「普通の電卓」と「関数電卓」のモードに応じて、同様に異なった動作をする。
なお以上で説明した「関数電卓」は、いわゆる「標準方式」と呼ばれるもので、近年の関数電卓には数式をそのまま入力して評価する方式のものもある。