Home » Excel(エクセル)の使い方 » xlsx内部のxmlで「1.225」は「1.2250000000000001」

xlsx内部のxmlで「1.225」は「1.2250000000000001」

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2401(ビルド17204.20000クイック実行)ベータチャネル

Excelの、「1.333」「1.225」「-1.333」「-1.225」といった値の計算結果について、以下のような記事を書いてきました。

[スポンサードリンク]

そもそもxlsxファイルの内部で、これらのデータはどうなっているのでしょうか。

確認するワークシート

A1:A4セルに「1.333」「1.225」「-1.333」「-1.225」を入力し、
A5セルには「0」になる計算式

=A1+A2+A3+A4

を、
A6セルには演算誤差の表示される計算式

=(A1+A2+A3+A4)

を入力した、下図のようなSheet1シートを作成し、Book1.xlsxとして保存しました。

sheet1.xmlファイル内のデータ

Book1.xlsxの拡張子をzipに変更後、展開(解凍)を行い、xlフォルダー下のworksheetsフォルダー内にあるsheet1.xmlファイルが、上記の操作で作成したSheet1シートのデータを管理しているファイルです。

そのA1:A6セルの中身は、下図のような状態になっていました。

興味深いのは「1.225」を入力したA2セルと、「-1.225」を入力したA4セルです。

小数第16位に「1」の存在する、
「1.2250000000000001」
「-1.2250000000000001」
になっています。
「1.225」「-1.225」と入力したにもかかわらず。

Excel上は「1.2250000000000001」にならない

先ほどのBook1.xlsxファイルのSheet1シートで、A1:A4セルの小数点以下を18桁まで表示させても、下図のように「1.2250000000000001」的な値が表示されることはありません。

VBEで「1.2250000000000001」と「1.225」を比較する

この「1.2250000000000001」が「1.225」と等しいかを、VBEのイミディエイトウィンドウで確認すると、Trueと判定されます。

「1.2250000000000001」より少しだけ大きい「1.2250000000000002」が「1.225」と等しいかを確認した場合には、Falseと判定されます。

最終更新日時:2024-01-18 09:36

[スポンサードリンク]

Home » Excel(エクセル)の使い方 » xlsx内部のxmlで「1.225」は「1.2250000000000001」

「Excel(エクセル)の使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.