[[20170626163906]] 『Excelセル内に小数点13以下が表示されない』(tatsu) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Excelセル内に小数点13以下が表示されない』(tatsu)

Excelの表示と計算についてですがセルに小数点13以下まで入力すると正常に表示せず
SUM関数の合計値も変わってしまいます
具体的にはセルの書式設定で小数点以下20桁まで表示する設定にしセルに
0.01234567890123456789 と入力しても表示されるのは
0.01234567890123450000 となります
ところが
1.01234567890123456789 と入力すると
1.01234567890123000000 となります
表示される小数点以下の数が減少します

またセルに関数計算で
A1に361.80024174722600000000 B1に0.0258 C3に=A1*A2
と入れると 9.33444623707843000000 なります
ところが電卓で同様の計算をすると 9.334446237078431 となります
たまたま上記計算式でこのような結果が出て数値が合わなかったので
気が付きました
別の数値の場合は同じ桁数でも正常に計算されているところもあります
例)1.12345678901234000000 * 0.0258 0.02898518515651840000
(これは正常に計算されます)
なぜこのように計算結果、表示桁数が変わるのでしょうか?
わかりにくい説明で申し訳ありません
宜しくお願いいたします

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 少数誤差 エクセル
 等で検索すると、いくらでも資料があると思います。

 もし正確な数値が必要な場合は、必要な桁まで整数(10^10等)にしてから計算されてはいかがでしょう?
(稲葉) 2017/06/26(月) 18:07

 Excelの有効桁数は最大「15桁」

 これは仕様です。
(笑) 2017/06/26(月) 18:23

 >なぜこのように計算結果、表示桁数が変わるのでしょうか? 

 浮動小数点で計算するPCでは、理論通りの結果を算出することは稀である。

 誤差は非常に小さく、15桁目で違っていても実務で問題になることは先ずありません。
 ※ただ、数値同士の大小を比較するシーンがあるとその微差が悪さをすることがあります。

 理論値にならない理由は以下の2点です。

 (1)10進数の小数を2進数で表すと殆ど循環小数になります。
   つまり、理論値を正確に認識できない。→正常に計算される訳がない。

 (2)演算ビット数に限界があり、エクセルでは有効桁数が15桁となっており、
  それより長い値があっても丸められてしまう。→正しい結果が出る訳がない。

 >別の数値の場合は同じ桁数でも正常に計算されているところもあります 
 >例)1.12345678901234000000 * 0.0258 0.02898518515651840000
 それが正常な結果と言えるのでしょうか?
 最終桁だけで考えると、4*8ですから、2で終わらなければ嘘である。

(半平太) 2017/06/26(月) 18:55


仕様だったんですね、、
お騒がせしました
稲葉さん、(笑)さん、
コメントいただきありがとうございました
半平太さん、細かく記載いただきありがとうございます
Winの計算機で計算したので同じになっていました
勉強になりました
(tatsu) 2017/06/26(月) 19:12

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.