1

filehandlerを介して VB.net から通貨レート ワークブックをアップロードしていSystem.Data.OleDb.OleDbConnectionます。

Excel シートでレートを表示すると、 が表示されます0.55865921787709500000
デバッグ モードでデータ テーブルに同じレートを表示すると、 が表示されます0.55865921787709480000

Excel では、小数点以下の桁数が20- に設定されています。

セルをテキストファイルに読み書きしようとしました(同じ「500000」の結果)。
ワークブックをカンマ区切りのテキスト ファイルとして保存しようとしましたが、結果は同じ '500000' でした。

レート ワークシートは、別の Web サイトから作成されます。ワークシートに 16 桁目を追加しようとしましたが、セルから移動するとゼロに戻ります。Excel には 16 桁の精度制限があることを知っています。この場合、より多くを保存しているように見えます。

データテーブルを調べる以外に、ワークブックに実際に格納されている値を確認する方法はありますか?

4

1 に答える 1

0

Excel は、元の Excel ドキュメントを作成したシステムに応じて、15 桁を超える有効数字を保持しています。この場合、ドキュメントは Crystal Reports によって作成されました。「余分な」有効桁数は、Excel スプレッドシートに対して OLEDB 接続を使用するか、Google ドキュメント バージョンの Excel で表示することによって表示できます。
この特定のケースでは、SQL に保存された料金をスプレッドシートと一致させる必要がありました。各レートを 10 進数と文字列に変換しました。この文字列を使用してレート内のピリオドを見つけ、小数点の後に表示される連続するゼロのカウントを開始しました。このカウントは、10 進数のシステム ラウンドの桁数として 15 に追加されました。四捨五入された数値は、Excel で情報を表示したときに表示される数値と一致しました。

于 2013-09-18T20:22:27.040 に答える