Windows 10の電卓アプリは演算子の優先順位を無視する? 94
ストーリー by headless
普通 部門より
普通 部門より
Windows 10の電卓アプリが演算子の優先順位を無視するとして、Redditで話題になっている(Softpediaの記事)。
問題の動作は「標準」モードで発生するもので、電卓の動作として間違っているわけではなく、バグというわけでもなさそうだ。つまり、普通の電卓(アプリではない単体の電卓専用機)では演算子の次に数字が入力された状態で演算子のキーを押すと計算が実行されるため、たとえば「2+2×3=」と押した場合の結果は「(2+2)×3」で「12」となる。一方、「=」を押すまで計算が実行されない「関数電卓」モードでの結果は「8」となる。
普通の電卓では特に気にならないと思われるが、Windows 10の電卓には計算履歴の表示機能があり、標準モードでも履歴に「2+2×3=12」と表示される。また、AndroidやiOS標準の電卓では「=」を押すまで計算が実行されず、結果は「8」になるようだ。最近はアプリの電卓を使うことが多いと思われるが、普通の電卓の動作は忘れられてしまったのだろうか。
問題の動作は「標準」モードで発生するもので、電卓の動作として間違っているわけではなく、バグというわけでもなさそうだ。つまり、普通の電卓(アプリではない単体の電卓専用機)では演算子の次に数字が入力された状態で演算子のキーを押すと計算が実行されるため、たとえば「2+2×3=」と押した場合の結果は「(2+2)×3」で「12」となる。一方、「=」を押すまで計算が実行されない「関数電卓」モードでの結果は「8」となる。
普通の電卓では特に気にならないと思われるが、Windows 10の電卓には計算履歴の表示機能があり、標準モードでも履歴に「2+2×3=12」と表示される。また、AndroidやiOS標準の電卓では「=」を押すまで計算が実行されず、結果は「8」になるようだ。最近はアプリの電卓を使うことが多いと思われるが、普通の電卓の動作は忘れられてしまったのだろうか。
=(イコール)をコピペで、無効な入力です (スコア:4, 興味深い)
メモ帳に1+2+3=*5=
と書いて、Ctrl+cでコピー、Calc上でCtrl+vでペーストすると、
Windows7では30と出てきた
Windows10では「無効な入力です」
関数モードでの挙動が依然と変わってて使いにくくなった。
大丈夫 (スコア:2)
10年後にはそれが業界のデファクトスタンダードになっているから。
// と、20年くらい前なら真面目な顔で言われていたかも。
Re:大丈夫 (スコア:1)
Windows 7のデスクトップ版電卓もこの仕様だったが。(通常モードだと無視して関数電卓モードだと優先順位順に計算するのも同じ)
むしろ、「10年前はこれが業界のデファクトスタンダードだった」でしょう。
Re:大丈夫 (スコア:1)
なんで今頃話題にしてんだろうな...
Re: (スコア:0)
10年前はスマホがなかった(と言うと語弊があるが、PCに比べて無視していい程度だった)からでしょ。
Re: (スコア:0)
Windows98からしか使った事ありませんが、その時からこの仕様だったと思うのですが。
履歴機能の表示内容に対する指摘なら、確かにおかしいと思いますけどね。
でも履歴が、((((1+1)+1)+1)+1)とか冗長過ぎてどうかなぁと思いますし。
ただ、関数電卓使った事無くて、日常生活で何かの公式を使ったりする事も皆無の自分のような一般人からすれば、通常モードの方が使い易いです。
込み入った計算はコマンドラインからスクリプトとかを使いますし。
Re:大丈夫 (スコア:1)
「おめえが入力した式は、本当はこういう計算式だよな。賢いオレが自動的に修正してやるぜ。その計算結果はこれだ。どうだスゲーだろ。」というMicrosoftらしい機能なんだろうな、と思ってました。
// Google翻訳も入力した内容を勝手に変更して翻訳するようになったんですね。
// どうだスゲー翻訳機能だろ。おめえの事はオレが一番よくわかっているからよ。礼には及ばねえよ。
普通の電卓の動作 (スコア:2)
普通の電卓の動作ってなに?
Re: (スコア:0)
普通の電卓買ってくれば分かるよ
Re: (スコア:0, 荒らし)
いつまでも少年の心を持ち続けるのはいいことだが、
いつまでも小学生の心のままだと恥ずかしいぞ
Re: (スコア:0)
卓上の巨大な計算機じゃなくて、今どきの手のひらに乗せることが出来る計算機のことじゃないか?
Re: (スコア:0)
手のひらに乗せることができる画面にタッチして操作する計算機のことですか?
Re: (スコア:0)
223+×と入力すると12が出てくる電卓のこと
Re:普通の電卓の動作 (スコア:2, すばらしい洞察)
10じゃないんだ…
Re:普通の電卓の動作 (スコア:1)
しまった普通じゃなかった
Re: (スコア:0)
0.000と出ましたが
Re: (スコア:0)
合コンでその電卓を取り出してしまったのですね…
履歴の表示機能側のバグ (スコア:2)
これは履歴の表示機能のバグでしょ?
普通の電卓で 2,+,2,*,3,= ってやったら(2+2)*3 で演算されるし。
勝手にかっこをつけるか、演算ごとに式を分けて表示する仕様にするべき。
マクロの基本は検索置換(by y.mikome)
Re:履歴の表示機能側のバグ (スコア:2)
ユーザの[入力履歴]という解釈なら現行が『ただしい』と思います。
実存する"電卓"のエミュレータなんだから、現状の動作が正しい。
(100円ショップで買ってきた電卓と、ほぼ同じ動作をしてくれないと、爺婆に説明する時、面倒ですし)
# つ~か、元記事の人達はリアル電卓を使わないのでせうか?
notice : I ignore an anonymous contribution.
Re: (スコア:0)
>演算ごとに式を分けて表示する仕様にするべき。
直すならこっちかなー
括弧を付ければ式として正しくなるかもしれないけど見づらいし
実態として毎回結果を出してるわけだからその通りに見せればいいと思う
Re: (スコア:0)
いまや100円(税別)で買える電卓との互換性を取れば、勝手に括弧を付けるほうかな
関数電卓は別に実装されているわけだし
演算子の優先順位を考えて計算させるとなると、字句解析など、ちょっとしたコンパイラの機能を実装することになるが、
そんなことまで電卓に実装させるなよ
eval一発でできるようなものじゃないんだぞ
初~中級プログラマだと演算順位まで考慮した電卓を実装するのは結構難しい(と思う)
Re:履歴の表示機能側のバグ (スコア:1)
インドでは計算履歴(検算)機能が欠かせなかったりするのだ、これが。
http://bizmakoto.jp/makoto/articles/1410/16/news044_2.html [bizmakoto.jp]
>インドでは店舗のレジスターが普及しておらず、レジ代わりに電卓を使うことが多いのだ。
:
>こういったときに活躍するのが、「検算機能」(製品名の「CHECK CALCURATOR」はここから来ている)。
:
>日本の電卓だと一部の製品にしか搭載されていない機能だが、インドの電卓ではこれが必須。
>客に「金額をごまかしているのではないか」と文句を言われた時にさかのぼって数字を見せたり、
>売り上げの計算をしたときに文字通り検算に使ったり……という使い方が一般的だという。
>
>これだけニーズが強い検算機能に目をつけたカシオは、MJ-120Dを「検算できるステップ数が業界最多」だと売り出した。
>多くても99ステップが主流だったところに、150ステップ戻れる機能を搭載したのである。
Re:履歴の表示機能側のバグ (スコア:1)
Windows 10連呼してるけど (スコア:1)
XPの電卓だって[普通の電卓]時は12で[関数電卓]時は8よ。
現行のは関数電卓とプログラマーが分かれて使いにくいので使ってない。
Re: (スコア:0)
そうそう、
モードを変えたときに、値が残っていれば便利なのに。
数字が (スコア:1)
出てくるだけいいじゃん。
電卓叩いただけでブルースクリーン@Windows3.1
初期の電卓 (スコア:1)
初期の電卓は+キーと=キーが分かれてなくて+=キーになってた。
レジスターがACC(アキュムレータ)と言われるのは累算が主な目的だったからと思われる。
その後の電卓は基礎的にはこれを踏襲したような感じ。
数式そのまま突っ込みたい (スコア:0)
MCとかMRとかMSとか、電卓の使い方が分からない
Re:数式そのまま突っ込みたい (スコア:2, おもしろおかしい)
電卓の使い方が分からない
メーカーによりますが、一般的にはこんな感じ。
MC … ビックマックが出てきます
MR … ポン・デ・リングが出てきます
MS … 機動兵器が出てきます
Re:数式そのまま突っ込みたい (スコア:2)
MC メモリークリア
MR メモリーリセット
MS メモリースロー
Re:数式そのまま突っ込みたい (スコア:2, おもしろおかしい)
MR ミステリー調査班
ΩΩΩ<ナ、ナンダッテー!?
Re: (スコア:0)
MSはモビルスーツではなくメモリーストアだとおもっていた。
Re: (スコア:0)
MRはミッドシップリア駆動?
Re: (スコア:0)
MS メモリースロー
メモリが遅くなるのか?
投げるつもりならMTだしなぁ。
Re: (スコア:0)
今時の関数電卓は数学自然表示とかいう機能で数式そのまま入力できる感じになってますよ
逆ポーランド式復活かな…。 (スコア:0)
演算順序を考えなくて良いらしいですね。使ったこと無いけど。
「=」キーがあるかどうか、がポイントなのかな。
iPhoneで計算してて答えが合わなくて変だな、と思ったことあるんですが、このせいだったんですね。
せめて入力中の計算式表示してくれれば、悩むことも無かったのになぁ…。
※たいしたことない、買い物の計算だったんで暗算で済ませた。
Re:逆ポーランド式復活かな…。 (スコア:1)
電卓で考えた場合は、「カッコを使わなくても複雑な式の計算が出来る」というのが大きいかと。
RPNじゃない奴だとちょっと複雑な式を入力すると、すぐにカッコだらけになって数え間違ってカーソルキー連打ってことになりやすい。
それこそ後ろの方でカッコが一個ふえたら、一番前まで戻って対応するカッコを挿入しなけりゃならん。
RPNでも複雑な計算式を入力する時は「ここまで計算した、それに4をかけて...」みたいな処理は
「頭の中で」してるけど、カーソルキーを連打する必要は無い。(というかカーソルキーなんてないよな?)
>「=」キーがあるかどうか、がポイントなのかな。
特徴としては=がないのは言われるけど、普通の電卓でも実はそれほど=は使ってないでしょ。
たとえば「1+2+3」をしたければ、
「1+2+3+」って入力すれば途中結果として見えるから。
先生も大変だろうなあ (スコア:0)
「僕の計算はあっています!ほら!電卓でも同じ答えじゃないですか!」ってクレームが増えるんだろうか。
PowerToysどこいった (スコア:0)
Power Calculator復活希望
Re:PowerToysどこいった (スコア:2, 興味深い)
互換機能でXPかなんかに指定すればWin7でも普通に使えるよ
PinballとPowerCalcは今でも現役だ
優先順位よりももっと言いたいことあるだろ? (スコア:0)
起動がくそ遅い。
モードによって動きが違って使い難い。
Re: (スコア:0)
モードを変えるのが間違いだと思う。
// モードが違うと挙動が違うってのを覚えておかなきゃならないってのは面倒だが
// ていうより、モード多すぎてびっくりした
演算のキーボードショートカット (スコア:0)
テンキーレス日本語キーボードで*を入力してるのに電卓アプリが積演算子として認識してくれないのは
バグですかねー?
Windows10の設定ではちゃんと日本語キーボードとして認識されてるし、
割り算も/で出来るのに、*だけは英語キーの(を押さないと掛け算できません
うーん、妥当な動作 (スコア:0)
逐次計算するパターンと数式立ててそれを計算するケースとじゃ前者のほうが多いかなぁ。
逐次計算というか算盤の玉弾いてるイメージ。
というか、関数電卓でない電卓は数式放り込むことはできないので……紛らわしいから
関数電卓のほう名前変えましょう、電卓って名前を使わない方向で。
Re: (スコア:0)
関数電卓モードと標準電卓モードで分けてるんだから、あえてこうしてると考えるのが普通
Re: (スコア:0)
記事を読めよ。
Re: (スコア:0)
あー「Windows10が叩けるぞー」って嬉々として書き込んでいたんだろうなw
Re: (スコア:0)
HDD容量についてのクラスアクションの時みたく、みんなわかってて使ってたのに
わかんないふりしていちゃもんつけるとゆー。
# HDD容量はソフト側の手抜きなのにHDDメーカーが責任取らされてて可哀想であった。
# 訴訟のずっと前から日本のメーカーはカタログとかに容量表示差の注釈つけてて、
# ずっとイチイチわかりきってる事書いてるなと思ったら大正解でちょっとびっくり。
Re:いまでも (スコア:2)
複素数とか使わないですけど、PCで使うのならボタン入力式より使い勝手がいいですし。
何より占有面積が小さくていいです。
以前はClipCalcを使っていましたが、なんだったかの自分にとって使いにくい理由があってなんとなく使用頻度が下がっていきました。ボタンが犬とか猫だったので自分の中ではわんにゃん電卓と呼んでました。(作者さんごめんなさい)
Re:[オフトピ] 普通の電卓の実装とPythonにおける演算の優先順位 (スコア:1)