Как да деактивирам научна нотация в .AsString в Delphi?

Здравейте, искам да получа числа от базата данни, например, ако числото в базата данни е 44.7890000000, бих искал да получа низ 44.789, същото 0.0010000000 -> 0.001, просто запазете числата и отрежете „0“. Използвам този код: qrySth.Fields[i].AsString - върши работата си, но откривам, че за много малки числа като 0,0000010000 става 1E-6. Има ли начин да деактивирам научната нотация за този метод AsString?

Благодаря!


person spspli    schedule 20.05.2011    source източник
comment
Мисля, че може би трябва да използвам displayformat   -  person spspli    schedule 21.05.2011
comment
Трябва да добавите този коментар като отговор, Spspli.   -  person Rob Kennedy    schedule 21.05.2011
comment
Има ли начин да използвам AsString, но мога да контролирам показването му до ненаучно число?   -  person spspli    schedule 21.05.2011
comment
„DisplayFormat“ не променя това, което „AsString“ връща, то въздейства само върху метода GetText на полето, което се използва в контроли за данни.   -  person Sertac Akyuz    schedule 21.05.2011
comment
Свързано с други езици: Haskell Lua C++ ostreams Delphi   -  person Mechanical snail    schedule 22.08.2012


Отговори (1)


Като алтернатива на настройката на свойството DisplayFormat на полето можете да прочетете от AsFloat и предайте стойността директно на FormatFloat. Той използва същия модел на формат.

person Rob Kennedy    schedule 20.05.2011
comment
Ако използвам AsFloat, поради природата на израза с плаващо число, той ще ми даде число, което не е точно същото като това, което е в базата данни. Ще има проблем с допълнително закръгляване. Така че не искам да използвам AsFloat - person spspli; 21.05.2011
comment
Какъв тип е полето на базата данни? (Нямам предвид класа Delphi TField. Имам предвид полето в схемата на DB.) - person Rob Kennedy; 21.05.2011
comment
@spspli - Както 'AsFloat', така и 'AsString' първо ще извлекат стойността на полето от базата данни, и двете ще използват метода GetData. Имаш проблем с едното, имаш го и с двете. „AsString“ допълнително ще преобразува стойността в низ с помощта на FloatToStr, който използва 'ffGeneral' за FloatFormat с 15 значещи цифри. - person Sertac Akyuz; 21.05.2011