readcell関数で取得するExcelのデータ精度に関して
Show older comments
Excelのセルに「79.999999998」と反映し、値が「80」のように丸められたとします。

そのセル値をreadcell関数で取得したのですが、「79.999999998」ではなく「80」の値として取得されていることを確認しました。

readcell関数で、Excel内のセル値を取得する際に、丸められた値ではなく素の精度の値(今回の場合「79.999999998」)を取得できるようにするオプションはございますか?
■追記
readcell関数ではR2021aまでは、Excelデータの素の精度を取得することが出来ない。
その為、xlsreadを用いたり、readmatrixやreadtableなど、他の読込関数で読み込むほか回避する。
R2021bからは改善
6 Comments
Hernia Baby
on 30 Sep 2021
確認ですが、これはどうしてもreadcellを使わなければいけないのでしょうか?
Hiroki Konno
on 30 Sep 2021
Atsushi Ueno
on 30 Sep 2021
Moved: Atsushi Ueno
on 17 Aug 2022
上記に従い、ファイルの内容に基づくインポート オプションを得て、"VariableTypes"が最初から"double"になっていたので、逆に80にするためにこれを"int8"に変えてreadcellを実行したのですが変わりませんね。何故ですか?
%opts = spreadsheetImportOptions % スプレッドシートのインポート オプション オブジェクト(1変数)のデフォルト値
opts = detectImportOptions('eighty.xls') % ファイルの内容に基づくインポート オプション
opts = setvartype(opts,{'Var1'},'int8') % 'Var1'の"VariableTypes"を'double'から'int8'に変更
format long; readcell('eighty.xls',opts)
format short; readcell('eighty.xls',opts)
format shortG; readcell('eighty.xls',opts)
Hiroki Konno
on 30 Sep 2021
Moved: Atsushi Ueno
on 17 Aug 2022
Hiroki Konno
on 4 Oct 2021
Moved: Atsushi Ueno
on 17 Aug 2022
Hiroki Konno
on 5 Oct 2021
Moved: Atsushi Ueno
on 17 Aug 2022
Answers (0)
Categories
Find more on スプレッドシート in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
