我正在使用Delphi7。
GetLocaleFormatSettings(1038, FS);
FS.DecimalSeparator := '.';
FS.ThousandSeparator := #0;
FS.NegCurrFormat := 5;
FS.CurrencyString := '';
XMLNode.Text := FloatToStrF(Query.FieldByName('Quantity').AsFloat, ffGeneral, 18, 2, FS);
Quantity DB字段(Firebird)为18,2 DECIMAL。
问题: 如果“数量”的值为15.6,则FloatToStrF有时会返回15.600000012或15.59999996或类似值。 我将结果放入经过严格验证(18,2)的XML文件中,并且正在生成错误。 重新启动计算机可以解决问题。
我认为这是一个浮点问题,但是我可以用什么代替FloatToStrF来将十进制数转换为字符串?
谢谢!