パスワードを忘れた? アカウント作成
12985774 story
数学

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」になるようだ。最近はアプリの電卓を使うことが多いと思われるが、普通の電卓の動作は忘れられてしまったのだろうか。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • メモ帳に1+2+3=*5=
    と書いて、Ctrl+cでコピー、Calc上でCtrl+vでペーストすると、
    Windows7では30と出てきた
    Windows10では「無効な入力です」

    関数モードでの挙動が依然と変わってて使いにくくなった。

  • 10年後にはそれが業界のデファクトスタンダードになっているから。

    // と、20年くらい前なら真面目な顔で言われていたかも。

    • by Anonymous Coward on 2016年11月19日 19時30分 (#3117266)

      Windows 7のデスクトップ版電卓もこの仕様だったが。(通常モードだと無視して関数電卓モードだと優先順位順に計算するのも同じ)
      むしろ、「10年前はこれが業界のデファクトスタンダードだった」でしょう。

      親コメント
      • by Anonymous Coward on 2016年11月19日 19時44分 (#3117276)

        なんで今頃話題にしてんだろうな...

        親コメント
        • by Anonymous Coward

          10年前はスマホがなかった(と言うと語弊があるが、PCに比べて無視していい程度だった)からでしょ。

      • by Anonymous Coward

        Windows98からしか使った事ありませんが、その時からこの仕様だったと思うのですが。

        履歴機能の表示内容に対する指摘なら、確かにおかしいと思いますけどね。
        でも履歴が、((((1+1)+1)+1)+1)とか冗長過ぎてどうかなぁと思いますし。

        ただ、関数電卓使った事無くて、日常生活で何かの公式を使ったりする事も皆無の自分のような一般人からすれば、通常モードの方が使い易いです。
        込み入った計算はコマンドラインからスクリプトとかを使いますし。

    • by Anonymous Coward on 2016年11月19日 19時39分 (#3117273)

      「おめえが入力した式は、本当はこういう計算式だよな。賢いオレが自動的に修正してやるぜ。その計算結果はこれだ。どうだスゲーだろ。」というMicrosoftらしい機能なんだろうな、と思ってました。

      // Google翻訳も入力した内容を勝手に変更して翻訳するようになったんですね。
      // どうだスゲー翻訳機能だろ。おめえの事はオレが一番よくわかっているからよ。礼には及ばねえよ。

      親コメント
  • by ymasa (31598) on 2016年11月19日 19時36分 (#3117270) 日記

    普通の電卓の動作ってなに?

    • by Anonymous Coward

      普通の電卓買ってくれば分かるよ

    • Re: (スコア:0, 荒らし)

      by Anonymous Coward

      いつまでも少年の心を持ち続けるのはいいことだが、
      いつまでも小学生の心のままだと恥ずかしいぞ

    • by Anonymous Coward

      卓上の巨大な計算機じゃなくて、今どきの手のひらに乗せることが出来る計算機のことじゃないか?

      • by Anonymous Coward

        手のひらに乗せることができる画面にタッチして操作する計算機のことですか?

    • by Anonymous Coward

      223+×と入力すると12が出てくる電卓のこと

  • これは履歴の表示機能のバグでしょ?

    普通の電卓で 2,+,2,*,3,= ってやったら(2+2)*3 で演算されるし。

    勝手にかっこをつけるか、演算ごとに式を分けて表示する仕様にするべき。

    --
    マクロの基本は検索置換(by y.mikome)
    • ユーザの[入力履歴]という解釈なら現行が『ただしい』と思います。

      実存する"電卓"のエミュレータなんだから、現状の動作が正しい。
      (100円ショップで買ってきた電卓と、ほぼ同じ動作をしてくれないと、爺婆に説明する時、面倒ですし)

      # つ~か、元記事の人達はリアル電卓を使わないのでせうか?

      --
      notice : I ignore an anonymous contribution.
      親コメント
    • by Anonymous Coward

      >演算ごとに式を分けて表示する仕様にするべき。
      直すならこっちかなー
      括弧を付ければ式として正しくなるかもしれないけど見づらいし
      実態として毎回結果を出してるわけだからその通りに見せればいいと思う

    • by Anonymous Coward

      いまや100円(税別)で買える電卓との互換性を取れば、勝手に括弧を付けるほうかな
      関数電卓は別に実装されているわけだし

      演算子の優先順位を考えて計算させるとなると、字句解析など、ちょっとしたコンパイラの機能を実装することになるが、
      そんなことまで電卓に実装させるなよ
      eval一発でできるようなものじゃないんだぞ

      初~中級プログラマだと演算順位まで考慮した電卓を実装するのは結構難しい(と思う)

  • by Anonymous Coward on 2016年11月19日 19時46分 (#3117278)

    XPの電卓だって[普通の電卓]時は12で[関数電卓]時は8よ。

    現行のは関数電卓とプログラマーが分かれて使いにくいので使ってない。

    • by Anonymous Coward

      そうそう、
      モードを変えたときに、値が残っていれば便利なのに。

  • by Anonymous Coward on 2016年11月20日 9時18分 (#3117457)

    出てくるだけいいじゃん。
    電卓叩いただけでブルースクリーン@Windows3.1

  • 初期の電卓は+キーと=キーが分かれてなくて+=キーになってた。
    レジスターがACC(アキュムレータ)と言われるのは累算が主な目的だったからと思われる。
    その後の電卓は基礎的にはこれを踏襲したような感じ。

  • by Anonymous Coward on 2016年11月19日 19時20分 (#3117260)

    MCとかMRとかMSとか、電卓の使い方が分からない

  • by Anonymous Coward on 2016年11月19日 19時23分 (#3117262)

    演算順序を考えなくて良いらしいですね。使ったこと無いけど。

    「=」キーがあるかどうか、がポイントなのかな。

    iPhoneで計算してて答えが合わなくて変だな、と思ったことあるんですが、このせいだったんですね。
    せめて入力中の計算式表示してくれれば、悩むことも無かったのになぁ…。
    ※たいしたことない、買い物の計算だったんで暗算で済ませた。

    • by Anonymous Coward on 2016年11月19日 20時59分 (#3117313)

      電卓で考えた場合は、「カッコを使わなくても複雑な式の計算が出来る」というのが大きいかと。
      RPNじゃない奴だとちょっと複雑な式を入力すると、すぐにカッコだらけになって数え間違ってカーソルキー連打ってことになりやすい。
      それこそ後ろの方でカッコが一個ふえたら、一番前まで戻って対応するカッコを挿入しなけりゃならん。

      RPNでも複雑な計算式を入力する時は「ここまで計算した、それに4をかけて...」みたいな処理は
      「頭の中で」してるけど、カーソルキーを連打する必要は無い。(というかカーソルキーなんてないよな?)

      >「=」キーがあるかどうか、がポイントなのかな。
      特徴としては=がないのは言われるけど、普通の電卓でも実はそれほど=は使ってないでしょ。

      たとえば「1+2+3」をしたければ、
      「1+2+3+」って入力すれば途中結果として見えるから。

      親コメント
  • by Anonymous Coward on 2016年11月19日 19時38分 (#3117272)

    「僕の計算はあっています!ほら!電卓でも同じ答えじゃないですか!」ってクレームが増えるんだろうか。

  • by Anonymous Coward on 2016年11月19日 20時58分 (#3117312)

    Power Calculator復活希望

  • by Anonymous Coward on 2016年11月19日 21時09分 (#3117322)

    起動がくそ遅い。
    モードによって動きが違って使い難い。

    • by Anonymous Coward

      モードを変えるのが間違いだと思う。

      // モードが違うと挙動が違うってのを覚えておかなきゃならないってのは面倒だが
      // ていうより、モード多すぎてびっくりした

  • by Anonymous Coward on 2016年11月20日 0時51分 (#3117397)

    テンキーレス日本語キーボードで*を入力してるのに電卓アプリが積演算子として認識してくれないのは
    バグですかねー?

    Windows10の設定ではちゃんと日本語キーボードとして認識されてるし、
    割り算も/で出来るのに、*だけは英語キーの(を押さないと掛け算できません

  • by Anonymous Coward on 2016年11月20日 2時25分 (#3117415)

    逐次計算するパターンと数式立ててそれを計算するケースとじゃ前者のほうが多いかなぁ。
    逐次計算というか算盤の玉弾いてるイメージ。

    というか、関数電卓でない電卓は数式放り込むことはできないので……紛らわしいから
    関数電卓のほう名前変えましょう、電卓って名前を使わない方向で。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...