PDA

View Full Version : نمایش عدد اعشاری در dbqrid



ali512
چهارشنبه 12 بهمن 1384, 11:13 صبح
سلام
من از دیتابیس sqlserver استفاده می کنم
یه فیلد از نوع real دارم با برنامه دلفی عدد 6.8 را ذخیره کردم ولی بعدا که نمایش می دم عدد تقریبا 6.80000527821 را نمایش می دهد ولی برا بعضی از اعداد مثلا 6.5 درسته ؟ مشکل از کجاست و چیکار باید بکنم ؟ با تشکر

سید مسعود موحد
چهارشنبه 12 بهمن 1384, 11:44 صبح
شما باید در فرمت نوع فیلد خود(ِDisplay Format) مسک درست را انتخاب نمایید به صورت زیر
##.###,#

(امید)
چهارشنبه 12 بهمن 1384, 13:17 عصر
سلام

مشخص نکردی مشکلت با اعداد اعشاری چیه ؟
اگه می خواهی اعداد گرد بشه مثل مثال خودت 6.5 می تونی از تابع Round استفاده کنی
اگه نمی خوای گرد بشه اما تعداد مشخصی از اعداد اعشار رو نشون بده می تونی از کدی شبیه کد زیر استفاده کنی:
var : temp : string
nosize1:real

Temp:=FloatToStr(nosize1);
Str(noSize1:4:3,Temp);
noSize1 :=StrToFloat(Temp);

برای مثال این کد تا 3 رقم اعشار برمی گردونه
در ضمن با فرمتی که دوستمون گفت می تونی اعداد اعشاری رو بخوبی نمایش بدی

سید مسعود موحد
چهارشنبه 12 بهمن 1384, 15:22 عصر
امید جان اون روش بالا رو که گفتم خودش رقم را گرد هم میکند .

ali512
چهارشنبه 12 بهمن 1384, 18:18 عصر
با سلام
من با دستورات زیر یه table را به یه adotable ربط دادم و گفتم که تو یه dbgrig فیلد ها را نمایش بده ولی بعضی از رکوردها که دارای اعداد اعشاری هستند را مثل عدد 6.8 به صورت 6.80000345
نمایش میدهد
adotable1.close;
adotable1.tablename:='test1';
adotable1.open;

سید مسعود موحد
چهارشنبه 12 بهمن 1384, 18:26 عصر
دوست عزیز
روی AdoTable دوبار کلیک کن بعد فیلدهای خود را Add کن با زدن کلیدهای CTRL + F بعد فیلدتو انتخاب کن و بعد در Property که در همین صفحه توضیح دادم ماسک مورد نظر رو وارد کن.

MiRHaDi
چهارشنبه 12 بهمن 1384, 20:47 عصر
سلام
آقای موحد که 3 بار جواب دادند !
بازم مشکلی هست ؟
بای

ali512
پنج شنبه 13 بهمن 1384, 11:03 صبح
با سلام
ado table را برای همه جداول استفاده می کنم بنابراین نمی تونم یک فیلد خاصی را براش تعریف کنم چون هر بار adotable مال یک جدول یا view می باشد بنابراین روش شما قابل استفاده نیست ...راه حل جدیدی اگر دارید جواب بدید .

سید مسعود موحد
پنج شنبه 13 بهمن 1384, 12:10 عصر
در زمان Runtime میتوانی این ماسک را تخصیص بدهی و از روی نوع فیلد باید چک بکنی که اگر مثلا Double یا Read یا .. بود این ماسک را در Property اون قرار بده.

MiRHaDi
دوشنبه 24 بهمن 1384, 11:00 صبح
سلام
آقا اگه از این روش که آقای موحد میفرمایند دوست نداری استفاده کنی میتونی از FloatToStr به صورت فرمت استفاده کنی ! ولی این کاری که آقای موجد میفرمایند از همه راحتتره ! خود دانی
بای

shayan_delphi
دوشنبه 24 بهمن 1384, 21:20 عصر
میشه نوع را Decimal تعریف کنی و تعداد ارقام صحیح و اعشار رو هم تنظیم کنی.