-3

これは私のコードです:

{    
FileStream hd = new FileStream(path, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(hd);
bw.Write("Tien an uong:");
bw.Write(anuong); //double
bw.Write("\n");
bw.Write("Tien hat:");
bw.Write(hat);//double
bw.Write("\n");
bw.Write("Tong cong tien phai thanh toan:");
bw.Write(s);//double
bw.Close();
hd.Close();
}

出力ファイルは次のようになります。

私はあなたの助けが必要です!

4

3 に答える 3

4
BinaryWriter bw = new BinaryWriter(hd);

バイナリ - テキストではありません。

bw.Write(hat); //double

テキストとしてではなく、バイトとして喜んで書き込みdoubleます。

TextWriterの代わりに ,を使用することをお勧めしますBinaryWriter

于 2012-12-16T11:31:02.573 に答える
0

私があなたの問題を理解した場合、あなたはダブルの問題を抱えているので、単純なものでToString()問題が解決すると思いますが、文字列としてそれが欲しいようですので、どうですか?

{    
FileStream hd = new FileStream(path, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(hd);
bw.Write(string.Format(@"Tien an uong:{0}{1}Tien hat:{2}{1}Tong cong tien phai thanh toan:{3}", anuong, Environment.NewLinew, hat, s);
bw.Close();
hd.Close();
}
于 2012-12-16T11:38:26.663 に答える
0

バイナリライターのデフォルトのエンコードはUTF-8(ASCII互換)です。doubleを書き込むと、doubleが直接ストリームに書き込まれ、予期しない文字が生成されます。

選択したエンコーディングのストリームライターを使用する必要があります
http://msdn.microsoft.com/en-us/library/system.io.streamwriter.aspx

または、文字列を受け取り、UTF-8でエンコードするBinaryWriterの書き込み関数に固執します。あまり論理的ではないように思われるすべてのタフ。

于 2012-12-16T11:38:30.393 に答える