プ技をやってて,ふと思い出したことだが,
どうせ,最近の大学生では,ジェネレーションギャップでわかってもらえないだろう.
かつて,MS-Windows 3.1と名乗るOSが存在していた.
時代で言えば,NEC PC-98シリーズの終焉が近づいていた頃だ.
まぁ.なんてことはない.今のWindowsの流れを汲む前身である.
"Windows"の名が一般大衆に知られた最初のOSだろうか?
それとも,それは,Windows 95の役目だったろうか?
まぁ.どうでもいいや.
そのWindows 3.1に標準搭載されていた「電卓」
えぇ.Windows XPにも,Windows 2000にも,Windows Meにも,
標準搭載だよね?使ったことあるよね?
その「電卓」
素晴らしい計算をしてくれるんです.
世界の大原則をぶっ壊してくれるんです.豪快に.
2 - 2.01 = -0.00
2.01 - 2 = 0.00
壮絶です.
いいですか.コンピュータに浮動小数点演算なんて,任せてはいけません!
その最たる例と言えましょう.
懐かしい思い出です.
以下.オフィシャルのプレス発表っぽい文章を引用.
****************************************************************
マイクロソフト株式会社より UPDATE VERSION として供給された
モジュールの修正情報
****************************************************************
----------------------------------------------------------------
電卓 CALC.EXE
----------------------------------------------------------------
以前の電卓アプリケーションでは、次のような演算を実行すると
間違った答えを表示していました。
12.52 - 12.51 = 0.00
6.0001 - 6.0 = 0.0000999...
本修正により以下の演算結果に違いが現れます。これは加減算時に
有効数字14桁目で四捨五入を行い、電卓内で有効数字13桁の数値と
して扱うためです。
1 / 3 x 3 = 1
(1 / 3 + 10 - 10) x 3 = 0.9999...
上記の問題は Windows 3.1 システム本体には関係ありません。その
ため他のアプリケーションへの影響は一切ありません。また、この
問題は Intel(R) Pentium(R) チップ内の PFU(浮動小数点演算装置)
との関連はありません。