タイトル | : Re^3: 配列データのファイル書き込み |
記事No | : 8198 |
投稿日 | : 2008/09/21(Sun) 08:37 |
投稿者 | : 魔界の仮面弁士 |
> WriteLineは文字列を引数としていると思っていますので、 > Writer.WriteLine(CStr(ctotfai * svo) + "," + CStr(stotfai * svo)) > として","をいれて全て文字にしたのです。 なので、書式文字列を .WriteLine("{0:書式},{1:書式}", データ1, データ2) のようにするなどして、カンマを含めて指定すれば良い事になりますね。 (StreamWriter.WriteLine や String.Format には、複数のデータを指定できます)
> レスの如くではまだ上手くシングル指数で出力でいませんが? 「常に指数書式」「データに応じて指数書式」「常に指数を使わない書式」などを 列記したのが先のサンプルです。
指数表記が目的ならば E 指定で良いと思いますが、指数部の桁数表記や 正数時の "+" 記号の有無なども指定したいのであれば、カスタム書式が便利かと。
その他、出力した文字列データを後から数値に戻す必要があるならば "R" 指定、 指数表記無しで小数部を固定桁数にするならば "F" 指定など、ご自身にとって 都合の良い書式文字列を探してみてください。
なお、正しい書式を指定しているはずなのに、求める結果が得られない場合には、 引き渡すデータ値(変数、定数、あるいは数式の演算結果など)の『型』が 間違っていないかどうかを確認してみてください。たとえば、データの型が Long 型の場合、"g" 書式や "e" 書式は使えても、"r" 書式は使えません。
' ==== "g" 書式(データに依存した書式)の精度指定 ==== String.Format("{0:g}" , 0.000001234) ' → "1.234e-06" String.Format("{0:g2}" , 0.000001234) ' → "1.2e-06" String.Format("{0:g15}", 0.000001234) ' → "1.234e-06" String.Format("{0:g}" , 1.5) ' → "1.5" String.Format("{0:g2}" , 1.5) ' → "1.5" String.Format("{0:g15}", 1.5) ' → "1.5"
' ==== "e" 書式(指数表現書式)の精度指定 ==== String.Format("{0:e}" , 0.000001234) ' → "1.234000e-006" String.Format("{0:e2}" , 0.000001234) ' → "1.23e-006" String.Format("{0:e15}", 0.000001234) ' → "1.234000000000000e-006" String.Format("{0:e}" , 1.5) ' → "1.500000e+000" String.Format("{0:e2}" , 1.5) ' → "1.50e+000" String.Format("{0:e15}", 1.5) ' → "1.500000000000000e+000"
' ==== カスタム書式の例 ==== String.Format("{0:0.0000E0}" , 0.000001234) ' → "1.2340E-6" String.Format("{0:0.0000E+0}", 0.000001234) ' → "1.2340E-6" String.Format("{0:0.0000E0}" , 1.5 ) ' → "1.5000E0" String.Format("{0:0.0000E+0}", 1.5 ) ' → "1.5000E+0"
---------------------------------------- 《"R" 書式》《"r" 書式》 Single/Double型専用。R とは、round-trip の意味です。 文字列に変換した後、それを元の数値に戻す必要がある時に使われます。 「精度」を指定する事はできません(指定しても無視されます)が、 データの有効桁数が、Double 型なら 15 桁分、Single 型なら 7 桁分に 収まる場合は "G" 指定と同じ結果になります。それらの有効桁数を 超える場合には、Double は 17 桁、Single は 9 桁が使用されます。 なお 「"R" 書式」では、指数表記で出力される際に、指数部の区切りに 'E' の文字が利用されますが、「"r" 書式」では 'e' が利用されます。
《"G" 書式》《"g" 書式》 標準的な数値書式。G とは、general の意味です。 データに応じて、固定小数点表記または指数表記のいずれか簡潔な形式に変換されます。 「精度」の指定が無い場合、Single 型は 7、Double 型は 15、Decimal 型は 29 が 指定された物とみなされます。データの有効桁数が、それらの精度を超えていた場合、 超過した桁は丸められます。 なお 「"G" 書式」では、指数表記で出力される際に、指数部の区切りに 'E' の文字が利用されますが、「"g" 書式」では 'e' が利用されます。
《"E" 書式》《"e" 書式》 指数書式。E とは、(scientific) exponential の意味です。 数値は、"-d.ddd…E+ddd" または "-d.ddd…e+ddd" という形式の文字列に変換されます。 「精度」の指定は、小数部の桁数を示します(整数部は、常に 1 桁固定です)。 精度の指定が無い場合、小数部の桁数として既定の 6 桁が使用されます。 指数部は、常に "+" または "-" のいずれかと、3 桁以上の桁で構成されます。 (3 桁未満の場合、009 のように先頭にゼロが埋め込まれます) なお 「"E" 書式」では、指数表記で出力される際に、指数部の区切りに 'E' の文字が利用されますが、「"e" 書式」では 'e' が利用されます。
細かく書くときりがないので、詳細はヘルプ等で御確認を。 http://msdn.microsoft.com/ja-jp/library/427bttx3.aspx
|