パスワードを忘れた? アカウント作成
13569207 journal
日記

kmraの日記: Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 2

日記 by kmra

電卓は意外とバグ多いですね。

https://pc.watch.impress.co.jp/docs/news/1115607.html

米Microsoftは4月4日(現地時間)、Windows 10に標準搭載の電卓アプリで4や9などの整数の二乗数の平方根が正確でなかった仕様を修正した。

sqrt(4)-2としたときに-1.068281969439142e-19と表示されるらしい。

32桁精度の浮動少数計算が行なわれていた

ということですが、ふつーのdoubleで計算していないのはどのような理由だったんでしょうか?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by manmos (29892) on 2018年04月06日 10時35分 (#3389021) 日記

    昔sqrt(36)が6にならなかったバグ(仕様)があります。
    これはsqrt(x)をexp(log(x)/2)(32bit float)でやっていたためと思われます。

    sqrtくらいニュートン法でやればいいのに、わざわざ精度の悪い(収束の遅い)方法を取るのはまあ、コードを小さくしたかったのだろうと。

    まあ、伝統かな。(と流行り言葉を出してみる。)

  • by minet (45149) on 2018年04月06日 1時23分 (#3388870) 日記

    想像ですが、内部計算で(特に数学関数なんかの)、値を2乗するとか指数・対数で扱うとかがあって、64bit浮動小数点数のままだと計算途中で頻繁にオーバーフロー・アンダーフローしちゃうから、128bitで計算してるとかじゃないでしょうかね。

typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...