AsFloat转换为字符串

sps*_*pli 0 delphi format floating-point decimal

您好我想将"qrysth.Fields [i] .AsFloat"转换为字符串,因此我使用以下代码:FormatFloat('0.###############',qrysth.Fields [I] .AsFloat)

但我发现结果字符串是12.000000000000001而qrysth.Fields [i] .AsFloat是12.00.我知道FormatFloat实际上不使用12.00来进行转换,而是使用无限数量的二进制来进行转换.(十进制系统中的0.1为0.1,但在二进制0.00011001100中为无限数...)

还有其他方法我可以在上面的情况下获得12.00吗?或至少12.000000000000000?

Rob*_*edy 5

如果你真的得到12.000000000000001,那么你的字段不能正好保持12,所以输出是正确的.您通过#在格式中放置这么多字符来要求高精度.如果您不希望它如此精确,那么请使用不太精确的格式字符串.