表計算の有効桁数
前回に引き続き表計算ソフトのネタ。今度は次のような計算をしてみた。目的は、それぞれのソフトでセルとの入出力に有効な桁数の確認。
A1 : 1
A2 : =1/3
A3 : =A1+A2
A4 : =A3-A1
A5 : =A2-A4
A6 : =A2-0.333333333333333 小数点の後に3が15個、68k Macでは19個
A7 : =A2-0.3333333333333333 小数点の後に3が16個、68k Macでは20個
以上の計算のA5, A6, A7の値を表にしてみた。
|
セルA5 |
セルA6 |
セルA7 |
|
|
素直な倍精度浮動小数点 |
5.55e-17 |
3.33e-16 |
0 |
|
|
|||
|
何か操作された倍精度浮動小数点 |
|
||
|
Excel 5.0/68k |
5.55e-17 |
3.33e-16 |
3.33e-16 |
|
Excel 98/Classic |
#DIV/0! |
3.33e-16 |
3.33e-16 |
|
OpenOffice.org Calc 2.2.1/MacOSX |
0 |
3.33e-15 |
0 |
|
|
|||
|
80ビット浮動小数点 |
-2.71e-20 |
5.42e-20 |
0 |
MacOSX/PowerPC G4上のAppleWorks, Mariner, Gnumericは小細工無しにセルから値を取得して計算しているようだ。
Excel 98はやっぱり不思議な事をしていて、演算そのものは倍精度浮動小数点なのだけど、セルに代入する時に最後の桁が丸められているような感じがする。また、セルから取得できるのは15桁までのようだ。
OpenOffice.org
CalcはExcelよりも一桁短くセルとの入出力を制限している感じ。関数電卓では表示10桁、内部演算精度13桁等として、表示している部分に演算誤
差が出にくいようにしているが、ExcelやOOo
Calcでも同様な考え方なのかもしれない。表示を14〜15桁として計算誤差を見えにくくしているのかもしれない。実際、ExcelやCalcで表示書
式で小数点以下を30桁(Excelの最大設定値)や20桁(Calcの最大設定値)の表示指定にしても、15桁まではまともな数値が入っていて、それ以
後は0が続いている。Gnumericだと小数点以下30桁までの表示桁数を指定できて、このときは2進数を10進数に変換したときの値がそのまま出てき
ている。つまり、16桁は10進数で正しい数値で、17桁目以降は無意味な数値が続く。クラリスワークスやAppleWorksではシステムの演算精度-
4桁位しか表示桁数の設定ができない。PPC上では全部で12桁、68k上では全部で16桁位。無意味な数字を表示するよりも、最初から表示させない方が
いいのかもしれない。Marinerは小数点以下15桁の表示指定が可能。
倍精度の桁一杯利用したいときはGnumericあたりを使うのが一番かも。ある意味マニア向けのような気がするけど (^^;)
今回、68k版のMariner 4.0.2でセルに0.33333333333333333333と有効桁一杯の数値を入れるとなぜか0.03333333333333333333と なってしまう事を確認した。0.142857...や1.111...や22222222222222222222などの他の数値でも桁一杯(19桁以 上)だと同様に1/10になってしまう。なかなかすごいバグだな (^^;) PPCで4.0.2を動かすと問題無いのだけど。
| 固定リンク
「AppleWorks」カテゴリの記事
- 表計算ソフトの負号の優先順位(2019.01.19)
- Snow LeopardでのAppleWorks(2009.10.31)
- ワープロ文書で文字の上線(2009.08.15)
- AppleWorks 6が立ち上がらない(2009.01.10)
- AppleWorks6は10.3では不安定(2007.12.24)
「NeoOffice/OpenOffice」カテゴリの記事
- Mac版LibreOffice 7.1の言語パックのインストールエラー(2021.05.08)
- 表計算ソフトの負号の優先順位(2019.01.19)
- LibreOffice 5.4.0 Mac版(2017.08.05)
- OOo BasicでCalcの関数を作ってみた(2016.04.16)
- Excelのグラフの軸ラベルの指数表記(2015.11.07)
「Excel」カテゴリの記事
- Excel for Macのアップデート失敗(2025.02.16)
- Officeのライセンス認証が外れた(2023.01.01)
- FormsとSharePointとExcel VBA(2021.11.01)
- 64 bit版ExcelでVBAマクロを走らせたら(2021.11.01)
- Excelのリボンに「アドイン」が表示されなくなった(2021.05.23)
「Gnumeric」カテゴリの記事
- High SierraでもMacportsのエラー(2019.02.09)
- 表計算ソフトの負号の優先順位(2019.01.19)
- macportsでエラー(2017.08.26)
- Excelのグラフの軸ラベルの指数表記(2015.11.07)
- Macportsでgnumeric 1.12.22.2のビルド(2015.08.01)


コメント