PDA

View Full Version : سوال: مشکل در پاس کردن متغیر از نوع اعشاری



mosiera98
دوشنبه 17 فروردین 1388, 19:34 عصر
سلام دوستان
من یه مشکلی در پاس کردن یه متغییر از نوع float دارم که اینو از یه تکس باکس میخونم و تبدیلش میکنم به متغییری از نوع float که دستورش اینه:
float.parse(mytext.box.text);
و مقدار اونو پاس میدم به لایه BLL پروژه ام که چندین آرگومان میگیره مثل زیر:
bll.production.Insert(HeaderID,ProductName,float.p arse(mytext.box.text));
که اگر داخل تکس باکس عدد 14.23 رو وارد کنیم همین عدد 4.23 به لایه BLL پاس میشه ولی نمیدونم چرا وقتی تو دیتابیس نوشته میشه همین عدد به اضافه 15 رقم اعشار نوشته میشه مثلا"میشه:
14.229992136548899
بصورت دستی از توی query analyser sql هم این پروسیجر رو اجرا کردم و همین آرگومان ها رو دادم و درست هم بود
نمی دونم چرا وقتی میفرستم به لایه bll که اونم پاس میده به لایه DLL چرا این اتفاق واسه متغیر بیچارم می افته
چند روزه دارم باهاش کلنجار میرم نتونستم حلش کنم :متعجب:
دوستان اگه منو راهنمایی کنن خیلی ممنون و متشکر میشم ازشون
خیلی ممنون
منتظر جواب ها و راه حلهای بهترتون هستم

Alireza Orumand
سه شنبه 18 فروردین 1388, 14:10 عصر
سلام
دوست خوبم شما دارید از نوع داده ای Float استفاده میکنید. اگر یه Breakepoint بگذارید مشاهده میکنید که پس از انجام عمل float.parse شما به جای دریافت عدد 14.23 عددی اشتباه دریافت میکنید. این به خاطر عدم دقت اعداد از نوع float هست. نوع داده ای خودتون رو به double تغییر بدید.
موفق باشید.

mosiera98
سه شنبه 25 فروردین 1388, 16:18 عصر
خیلی ممنون از جوابتون
ولی وقتی برنامه رو trace میکنم همه چی درسته حتی همون عدد با دورقم اعشار به اون پروسیجر که میخام پاس میشه اما نمیدونم چرا آخرش با 15 رقم اعشار تو دیتابیس نوشته میشه


تا حالا تست زدید؟؟؟