سلام
من عدد 2 را در متغیری از نوع Real ذخیره کردم. آن را در دیتابیس ذخیره کردم حالا وقتی موقع مقایسه آن عدد ذخیره شده را با عدد 2 مقایسه می کنم برابر نیست!!!!
اگر عدد ذخیره شده در دیتابیس را A فرض کنیم:
If A=2 Then Beep;
اما صدایی در نمی آید علت آن این است که در واقع به جای عدد 2.0000000000 عدد 1.99999999999999 ذخیره شده است!!!
چه کار کنم؟
ظاهرا در زبان C# یک دیتاتایپ وجود دارد به اسم Decimal که اعداد اعشاری را در مبنای 10 ذخیره میکند نه مبنای 2 (IEEE-754) !!
آیا دلفی راه حلی برای این مشکل وجود دارد؟
این هم لینک آن مطلب در C#
https://barnamenevis.org/showthread.p...A7%D8%B1%DB%8C
البته تابع CompareValue در یونیت Math برای این نوع مقایسه وجود داره اما آیا راهی هست که این عدد در دیتابیس (SQL Server) همان شکلی من می خواهم ذخیره بشه؟