2011-05-02 6 views
1

Excelの外からExcel 2007ファイル(xlsx)を読み込もうとしていますが、説明できない矛盾があります。Excel 2007と下位のxmlファイルの数値が一貫していない

19.99という値をセルに入力し、その背後にあるXmlドキュメントを見ると、実際には19.989999999999998として保存されます。これはこれを行う唯一の値ではありませんが、合理的な例です。シートには書式設定は適用されません。私の例では、新しいワークブックを開き、A1に19.99と入力してファイルを保存します。

私はオープンオフィスとGoogleドキュメントの両方でこの簡単な例を開こうとしましたが、ドキュメントが読み込まれると19.99が表示されます。

私の質問は、この値を19.989999999999998から他のシステムで使用するために19.99に変換する時期をどのように決定すればよいですか?

+0

この値を変換する必要がありますか?私は2つの違いが非常に小さいことを意味します。それはあなたのシステムに影響を与えますか? – Konstant

+0

xlsxファイルの内容と視覚的に一致するファイルのバージョンが必要です。この場合、正確な外観が重要です。数字の「差」はかなり小さく、正確に丸められますが、それは私の目的には受け入れられません。 –

答えて

2

保存された19.99と19.989999999999998との間の変動は、浮動小数点の変動です...浮動小数点の2進表現(Excel内部で使用される)と表示に使用される小数(およびxlsxファイルへの格納)。

セルに書式を明示的に割り当てていない場合でも、Excelはデフォルトの書式「@」または「一般」を適用します(数値の場合は2dpに表示されます)。そのセルの数値書式(MS Excelのフロントエンドを使用するかxlsxファイルを調べるかにかかわらず)を見ると、実際にはデフォルトに設定されているはずです。

関連する問題