delphi - 文本文件 XE2 中实数的小数分隔符

标签 delphi delphi-xe2

以下代码给出了 Writeln(Outfile,testreal) 的实数,并带有“.”小数点分隔符,即使我在 Windows 系统中定义了“,”。如何使用 Writeln(Outfile,testreal) 将数字写入文本文件?

(FloatToStr 方法给出了应有的正确结果。)

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

最佳答案

旧版 Pascal I/O 使用 Str 将浮点值转换为文本。 Str 硬编码了 ..

的小数点分隔符

我建议您使用更现代的 I/O 形式。例如,TStreamWriter 类使用 FloatToStr 将浮点转换为文本。

关于delphi - 文本文件 XE2 中实数的小数分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254682/

相关文章:

delphi - 蓝牙和delphi,怎么样?

delphi - 进程名称在 Delphi XE 中不可见附加到进程对话框 - 无法调试

delphi - 如何以新格式将数据 append 到现有剪贴板而不删除现有数据?

delphi - 如何在Delphi XE2中制作Ribbon画廊?

delphi - 光标不工作时完成类(class)

delphi - 用于 Delphi 的 XQuery/XPATH 2.0

delphi - 如何在透明表单上创建具有清晰背景的位图?

android - 如何确定地理坐标附近是否存在街道或地址?

string - 编译器是否优化字符串连接?

delphi - 如何在 Windows/Mac 上从 FireMonkey 启动电子邮件客户端?