ورود

View Full Version : سوال: اتفاق عجیب در خواندن یک فیلد اعشاری



masoode
دوشنبه 22 مرداد 1403, 11:43 صبح
با سلام
من یک فیلد اعشاری دارم که مقدار 0.32 را در آن قرار داده ام.
155961
با هر روشی آن را میخوانم مقدار 0.3199999992847443 را بر میگرداند. مشکل آنجا اتفاق می افتد که من دارم با متغییر res از نوع float مقایسه میکنم اما نا مساوی میشود!!!
155962
به دلیل اینکه مقادیری که در این فیلد ذخیره خواهد شد، بعضا اعشاری هستند و بعضا عدد صحیح و اگر اعشاری باشد تعداد ارقام پس از اعشار ثابت نیست نمیخواهم از نوع Decimal استفاده کنم.
چه راه حلی برای این مقایسه پیشنهاد میکنید؟

یوسف زالی
دوشنبه 22 مرداد 1403, 12:57 عصر
سلام. مقادیر رو تا 6 رقم اعشار روند کنید.

masoode
دوشنبه 22 مرداد 1403, 14:56 عصر
مثلا این کد را چگونه تغییر بدهم؟
if res>FDQView.FieldByName('Qty').AsFloat then begin
ShowMessage('مقدار موجودی از مقدار درخواستی نباید بزرگتر باشد');
Exit;
end;

یوسف زالی
سه شنبه 23 مرداد 1403, 02:06 صبح
Uses Math;
.
.
if RoundTo(res, -6) > RoundTo(FDQView.FieldByName('Qty').AsFloat, -6) then ..

masoode
سه شنبه 23 مرداد 1403, 13:23 عصر
خیلی متشکرم
تابع RoundTo را نمی شناختم :تشویق::تشویق::تشویق: