C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■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 データとして扱うには都合が悪くなるので、実用的では無いですが。
解決済み
返信 編集キー/


管理者用

- Child Tree -