3

次のコードは、'.' を使用して Writeln(Outfile,testreal) の実数を返します。Windows システムで ',' が定義されているにもかかわらず、小数点記号が表示されません。Writeln(Outfile,testreal) を使用して数値をテキスト ファイルに書き込むにはどうすればよいですか?

( FloatToStr メソッドは、必要に応じて ok の結果を返します。)

procedure TForm1.Button1Click(Sender: TObject);
var Outfile:textfile;
    testreal:single;
    StrDummy : string;

begin
  testreal:=1234.1234;
  assignfile(Outfile,'test_real.txt');
  Rewrite(Outfile);
  StrDummy:='Decimal Separator in Windows: '+GetLocaleChar(GetThreadLocale, LOCALE_SDECIMAL, '.')+#13#10+
            'Decimal Separator in Delphi:  '+DecimalSeparator;
  Writeln(Outfile,StrDummy);
  Writeln(Outfile,testreal);
  Writeln(Outfile,FloatToStr(testreal));
  Closefile(Outfile);
end;

与える

Decimal Separator in Windows: ,
Decimal Separator in Delphi:  ,
 1.23412341308594E+0003                      //Ps. Why is there a beginning space here? 
1234,12341308594
4

1 に答える 1

4

従来の Pascal I/O はStr、浮動小数点値をテキストに変換するために使用します。の小数点Str記号をハードコードします.

より最新の形式の I/O を使用することをお勧めします。たとえば、浮動小数点をテキストに変換するためTStreamWriterに使用するクラス。FloatToStr

于 2013-01-10T09:43:20.513 に答える