十进制转换为字符串-FloatToStrF返回不精确的结果-替代解决方案?

时间:2018-07-04 08:37:54

标签: floating-point delphi-7 floating-accuracy

我正在使用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来将十进制数转换为字符串?

谢谢!

0 个答案:

没有答案