■88786 / ) |
Re[5]: 大きな数値のcsvファイルへの書き込み |
□投稿者/ 魔界の仮面弁士 (1864回)-(2018/09/27(Thu) 12:44:29)
|
■No88784 (furu さん) に返信 > Excelが見やすいように機能としてEの表記にしているだけで > 内部のデータは桁落ちしていません。
Excel も、やはり 15 桁程度で桁落ちします。たとえば、 12345678901234567890 と書いたとしても、 12345678901234500000 に丸められたりします。
※内部データが倍精度浮動小数点数(計算式では一部多倍長浮動小数点数)らしいです。
その他の数値型の有効桁数
16bit 整数型… 約 4.81647993062 桁 (Int16/UInt16) 32bit 整数型… 約 9.63295986125 桁 (Int32/UInt32) 64bit 整数型… 約 19.2659197225 桁 (Int64/UInt64) Decimal 型…… 約 28.8988795837 桁 (96bit に相当)
*.csv をダブルクリックして Excel を関連付け起動するのではなく、 Excel の[データ]-[外部データ取り込み]-[テキストファイル]で読み取り、 ウィザード内で列のデータ形式を「G/標準」から「文字列」に変更しておくことで、 元のデータを維持して表示することができます。 (その代わり、数値として扱える有効桁数が変わるわけでは無いですが)
*.csv をダブルクリックしたときに、Excel で表示されることを優先するなら sr.WriteLine("=""12345678901234567890""") のようにするという手もあります。 CSV データとして扱うには都合が悪くなるので、実用的では無いですが。
|
解決済み
|