نمایش نتایج 1 تا 9 از 9

نام تاپیک: تعیین تعداد ارقام اعداد اعشاری

  1. #1

    تعیین تعداد ارقام بعد از اعشار

    سلام، چنانچه سوال تکراری است، به بزرگی خودتون ببخشید.

    برای رند کردن (با تعداد ارقام مشخص بعد از اعشار) از توابع Formatfloat و Roundto و simpleroundto استفاده شد. این توابع فقط روی فیلد varchar جدول درست عمل می کنند. روی فیلد real یا float جدول تبدیل انجام نمی شود.

    من در حال حاضر تمام فیلدهای محاسباتی رو به خاطر رند شدن varchar تعریف کردم. اما به علت تعدد مراحل محاسبات، مجبورم پیاپی real رو به String و بالعکس تبدیل کنم. در مرحله آخر محاسبه هم با اضافه کردن فیلد جدید، پیغام is not valid float point رو می گیرم که نتونستم کاری براش بکنم.

    تابع رند دیگر می شناسید که روی فیلد real کار کند ؟

    شاید گفتنش خیلی مهم نباشه، ولی من از اینتربیس استفاده می کنم.

    با تشکر

  2. #2

    Lightbulb نقل قول: تعیین تعداد ارقام اعداد اعشاری

    خودتون يه تابع تعريف كنيد كه ديگه مجبور نباشيد هر دفعه عمل تبديل رو تكرار كنيد :


    Function FormatReal( Num : Real): Real;
    begin
    Result := StrToFloat(FormatFloat('0.00' , Num));
    end;

    مثال :


    var R: Real;
    R := FormatReal(4356.63224);


    جواب : 4356.63 = R

  3. #3

    نقل قول: تعیین تعداد ارقام اعداد اعشاری

    ممنون از پاسخ شما

    ملاحظه می کنید، عدد تو editbox با سه رقم اعشاره و بعد از insert با ده رقم نمایش داده می شه !


    و بعد از اعمال تابع Formatreal که در پست قبل نوشته شد (با در نظر گرفتن 0.00)، دو رقم اول گرد می شه، اما همچنان تا 10 رقم نشان داده می شود!!!


    نوع فیلدهای midrex_left و MAXL در اینجا، هر دو real است.

    پی نوشت: Editbox بالا، در زمان اجرا Create می شود.

  4. #4

    Lightbulb نقل قول: تعیین تعداد ارقام اعداد اعشاری

    شما مي توني در تنظيمات مربوط به فيلدي كه مقدار اعشار رو در اون دخيره مي كني بسته به نيازت مقدار Decimal Places رو تغيير بدي ، مثلا براي ذخيره اعداد با دو رقم اعشار مقدار 2 را به آن اختصاص بده ، البته اين كار رو بايد در پايگاه داده اي كه ازش استفاده كردي انجام بدي ( مثلا در اكسس )

    براي نمايش n رقم اعشار در DBGrid در خود دلفي هم مي توني روي ADOQuery يا AdoTable (از هر كدوم كه استفاده كردي) دو با كليك كن ، در صفحه باز شده راست كليك كرده و گزينه Add All Fields رو انتخاب كن ، زماني كه فيلدهاي جدولت به ليست اضافه شدن ، روي فيلد مورد نطرت كليك كرده و در قسمت Properties اون در قسمت DisplayFormat فرمت مورد نظرت رو وارد كن مثلا 0.00

  5. #5
    کاربر دائمی آواتار سعید صابری
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    برازجان
    پست
    1,431

    نقل قول: تعیین تعداد ارقام اعداد اعشاری

    نقل قول نوشته شده توسط mohmp3 مشاهده تاپیک
    ممنون از پاسخ شما

    ملاحظه می کنید، عدد تو editbox با سه رقم اعشاره و بعد از insert با ده رقم نمایش داده می شه !


    و بعد از اعمال تابع Formatreal که در پست قبل نوشته شد (با در نظر گرفتن 0.00)، دو رقم اول گرد می شه، اما همچنان تا 10 رقم نشان داده می شود!!!


    نوع فیلدهای midrex_left و MAXL در اینجا، هر دو real است.

    پی نوشت: Editbox بالا، در زمان اجرا Create می شود.

    در قسمت properties فيلدت گزينه displayformat ميتوني عدد فرمت بندي كني .

  6. #6

    نقل قول: تعیین تعداد ارقام اعداد اعشاری

    نقل قول نوشته شده توسط دلفــی مشاهده تاپیک
    شما می تونی در تنظیمات مربوط به فیلدی که مقدار اعشار رو در اون دخیره می کنی بسته به نیازت مقدار Decimal Places رو تغییر بدی ، مثلا برای ذخیره اعداد با دو رقم اعشار مقدار 2 را به آن اختصاص بده ، البته این کار رو باید در پایگاه داده ای که ازش استفاده کردی انجام بدی ( مثلا در اکسس )

    برای نمایش n رقم اعشار در DBGrid در خود دلفی هم می تونی روی ADOQuery یا AdoTable (از هر کدوم که استفاده کردی) دو با کلیک کن ، در صفحه باز شده راست کلیک کرده و گزینه Add All Fields رو انتخاب کن ، زمانی که فیلدهای جدولت به لیست اضافه شدن ، روی فیلد مورد نطرت کلیک کرده و در قسمت Properties اون در قسمت DisplayFormat فرمت مورد نظرت رو وارد کن مثلا 0.00
    ممنون از پاسخ شما

    خیلی از فیلدها در زمان اجرا ساخته می شوند. خاصیت Displayformat رو در زمان اجرا برای یک فیلد چگونه می توانم تنظیم کنم. من از SQLConnection استفاده می کنم.

    احتمالا مشکل من با تنظیم Displayformat حل می شود. چون من با اعداد کوچیکی کار می کنم، لذا تا هر رقم اعشار تو محاسبات لحاظ بشه، اهمیتی نداره، اما برای نمایش اعداد محدودیت عرض فیلد رو دارم.

  7. #7

    Lightbulb نقل قول: تعیین تعداد ارقام اعداد اعشاری

    نقل قول نوشته شده توسط mohmp3 مشاهده تاپیک
    ممنون از پاسخ شما

    خیلی از فیلدها در زمان اجرا ساخته می شوند. خاصیت Displayformat رو در زمان اجرا برای یک فیلد چگونه می توانم تنظیم کنم. من از SQLConnection استفاده می کنم.

    احتمالا مشکل من با تنظیم Displayformat حل می شود. چون من با اعداد کوچیکی کار می کنم، لذا تا هر رقم اعشار تو محاسبات لحاظ بشه، اهمیتی نداره، اما برای نمایش اعداد محدودیت عرض فیلد رو دارم.
    نیازی نیست که در زمان جرا این خاصیت رو مقداردهی کنید !
    شما می تونید در حالت Design طبق توضیحی که در بالا گفتم تمام اون موارد رو انجام بدی و پس از گزینه Add All Fields ، گزینه New Field رو انتخاب کرده و نام و نوع فیلدی رو که در حالت اجرا می سازی را وارد کرده و نوع اون رو هم از نوع Data انتخاب کرده و خاصیت DisplayFormat رو مقداردهی کنی .

  8. #8

    نقل قول: تعیین تعداد ارقام اعداد اعشاری

    نقل قول نوشته شده توسط دلفــی مشاهده تاپیک
    نیازی نیست که در زمان جرا این خاصیت رو مقداردهی کنید !
    شما می تونید در حالیت Design طبق توضیحی که در بالا گفتم تمام اون موارد رو انجام بدی و پس از گزینه Add All Fields ، گزینه New Field رو انتخاب کرده و نام و نوع فیلدی رو که در حالت اجرا می سازی را وارد کرده و نوع اون رو هم از نوع Data انتخاب کرده و خاصیت DisplayFormat رو مقداردهی کنی .
    ببخشید، من منظورم رو بد گفتم !

    منظورم این بود که فیلد توسط کاربر ساخته می شود !

  9. #9

    نقل قول: تعیین تعداد ارقام اعداد اعشاری

    احتمالا باید از کد زیر استفاه کنم (برای فیلد Real):

    (TSQLConnection.Fields.FieldByNumber(1) as TFloatField).DisplayFormat:='0.00';


    من دو جا از این کد استفاده کردم، یکی زمان ساختن فیلد توسط کاربر، دیگری زمان Insert داده به همان فیلد توسط کاربر. هر دو جا Error داشت.

    ممنون می شم بفرمایید کجا باید از این کد استفاده کنم ؟
    آخرین ویرایش به وسیله mohmp3 : شنبه 10 بهمن 1388 در 15:07 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •