2011-05-20 97 views
4

嗨 我想从数据库中的数字,例如,如果在数据库中的数为44.7890000000,我想获得一个字符串44.789,同样0.0010000000 - > 0.001,只是不停的数量和修剪拖尾“0” 。 我用这个代码: qrySth.Fields [I] .AsString - 它的工作,但我觉得像0.0000010000成为1E-6非常小的数字。有没有办法可以禁用此AsString方法的科学记数法?如何在Delphi中禁用.AsString中的科学记数法?

谢谢!

+3

我想也许我需要使用displayformat – spspli 2011-05-20 20:23:45

+0

您应该添加注释作为一个答案,Spspli。 – 2011-05-20 20:31:52

+0

有没有一种方法我使用AsString,但可以控制其显示非科学数字? – spspli 2011-05-20 20:35:50

回答

2

作为设置字段DisplayFormat属性的替代方法,您可以从AsFloat中读取并将值直接传递给FormatFloat。它使用相同的格式。

+0

如果我使用AsFloat,由于浮动数字的表达性质,它会给我一个不完全相同的数字。会有额外的舍入问题。所以我不想使用AsFloat – spspli 2011-05-20 20:34:39

+1

数据库字段是什么类型? (我不是指Delphi的TField类,我的意思是数据库模式中的字段。) – 2011-05-20 20:42:09

+1

@spspli - 'AsFloat'和'AsString'都会首先从数据库中检索字段的值,两者都会使用'GetData'方法。你有一个问题,你有两个。 'AsString' 将,* *另外,该值使用['FloatToStr']转换成字符串(http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/[email protected] ),其使用 'ffGeneral' 的[FloatFormat](http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_TFloatFormat.html)用15个显著数字。 – 2011-05-21 01:47:25