2011-05-20 102 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