PDA

View Full Version : بهترین نوع داده ای برای محاسبات ریاضی



eletcomp
پنج شنبه 01 خرداد 1393, 15:39 عصر
با سلام بر عزیزان

میخواستم بدونم بهترین نوع داده ای برای محاسبات ریاضی هست؟؟؟ بر مبنای ریال و تومان!!
مثلا من یک فرمول ساده برای محاسبه سود دارم که به صورت زیر هست:
سود=اصل پول * نرخ بهره یا سود * تعداد روز تقسیم بر 365 !!!!!!!!

از راست به چپ بخوانید اعداد را!

مثلا :

1000000*21*31 / 365 = 1783561 الان این مبلغ به ریال هست!!!! یعنی 2 عدد اضافه داره یعنی 2 رقم اخر که 6 و1 هست!!!!الان سئوال من این هست که چطور می توان مبلغ را به تومان تبدیل کرد!!! یعنی 2 رقم اخر حذف بشوند!! حاصل بشود 17835 که به صورت تومان هست!!! در اینجا باید از چه نوع داده ای استفاده بشود که اعداد اینقدر طولانی نشوند!!! و برای واحد تومان خوب باشد!!!

اساتید لطفا راهنمایی کنید!

سپاس

parvizwpf
پنج شنبه 01 خرداد 1393, 16:43 عصر
double جوای کار شما رو میدهد. اگر نداد decimal
در ضمن چرا محاسبات رو جوری تصحیح نمیکنید که خروجیش تومن بشه؟

eletcomp
پنج شنبه 01 خرداد 1393, 17:23 عصر
در ضمن چرا محاسبات رو جوری تصحیح نمیکنید که خروجیش تومن بشه؟
ممنون دوست عزیز: من مبتدی هستم!!
من چطوری باید خروجی محاسبات را به تومان تصحیح کنم؟ ایا نوع داده را عوض کنم؟؟؟لطفا راهنمایی کنید؟
سپاس

parvizwpf
پنج شنبه 01 خرداد 1393, 17:27 عصر
شما وقتی 100 تومان دارید میخواهید ریال ازش داشته باشید میگید:
100*10
بنظرم اگه اون اصل پول خودش تومان باشه دیگه مشکلی نخواهید داشت.

eletcomp
پنج شنبه 01 خرداد 1393, 17:45 عصر
ممنون دوست عزیز:ولی من متوجب گفتار شما نشدم!!! به این عکس نگاه کنید!! من اصل پول را براساس تومن وارد کردم!!! ولی در قسمت مجموع کل به ریال در می اید!!!! خط قرمز و ابی را نگاه کنید!!
هر تغییری می دهم ان 2 عدد اخر یعنی 6 و4 حذف نمی شوند!! من میخوام مبلغ کل به صورت 103561 تومان نشان داده بشود!!!
سپاس
http://www.uplooder.net/img/image/11/12d825c60b4d9c4217571fd62ef9e7ee/sood.JPG

parvizwpf
پنج شنبه 01 خرداد 1393, 18:06 عصر
همیشه ته محاسبات 64 میافته؟ شما برید محاسباتتون رو چک کنید که چرا اینجوری میشه

eletcomp
پنج شنبه 01 خرداد 1393, 18:18 عصر
همیشه ته محاسبات 64 میافته؟ شما برید محاسباتتون رو چک کنید که چرا اینجوری میشه

بله: 64 : یعنی 2 رقم!! همیشه 2 رقم اضافه ایجاد می شود!!! در مورد چک کردن محاسبات باید بگم نوع داده هایی را که ار تکس باکس می گیرم را از نوع double گذاشتم!!!
و داخل دیتابیس نوع داده را از نوع float در نظر گرفتم(سود و بهره و روز)!!! این برنامه کد نویسی اش کم هست!!! من با محاسبات مشکل دارم!!!
لطفا راهنمایی کنید!



SqlCommand cmd = new SqlCommand("insert into Tblsood(month,amount,profit,day,total)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "', '" + (Double.Parse(textBox2.Text)) * (Double.Parse(textBox3.Text)) * (Double.Parse(textBox4.Text)) / 365 + "') ", cn);
cmd.ExecuteNonQuery();



http://www.uplooder.net/img/image/91/dab98c4638f5533d3aa5448827895391/db.JPG

Share & Learn
پنج شنبه 01 خرداد 1393, 19:39 عصر
سلام
ببینید، محاسباتتون درسته
نتیجه هم به تومان هست نه به ریال
حالا باید ببینید شما می خواین نتیچه چطور گرد بشه؟
به جای ده میلیون و سیصد و پنجاه و شش هزار و صد و شصت و چهار تومن چی بشه؟ 10356164
ده میلیون و سیصد و پنجاه و شش هزار و صد تومن؟ 10356100
ده میلیون و سیصد و پنجاه و شش هزار و صد و پنجاه تومن؟ 10356150
ده میلیون و سیصد و پنجاه و شش هزار و دویست تومن؟ 10356200

ویرایش:

شما دارید سود بانکی حساب می کنید؟؟؟
من فقط کدی که داده بودید رو نگاه کردم، متوجه نشدم
سود بانکی روزانه رو که اینجوری حساب نمی کنن، این جوری حساب می شه:
(اصل پول * سود بانکی / 36500) * تعداد روز

که می تونید تو برنامه اینجوری بنویسید:

SqlCommand cmd = new SqlCommand("insert into Tblsood(month,amount,profit,day,total)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "', '" + (Double.Parse(textBox2.Text)) * (Double.Parse(textBox3.Text)) * (Double.Parse(textBox4.Text)) / 36500 + "') ", cn);
cmd.ExecuteNonQuery();

eletcomp
پنج شنبه 01 خرداد 1393, 19:47 عصر
ببینید، محاسباتتون درسته
نتسجه هم به تومان هست نه به ریال
ممنون دوست عزیز: ولی نتیجه به ریال هست نه تومان!!!! شما فکر کن 6000000 تومان را بانک میزاری و با سود 21 درصد و 30 روزه یعنی 1 ماه!!!! خب الان اینجا ماهی به شما
103561 تومان :سود پول تان را می دهند!!! نه 10 میلیون دوست عزیز!!!
کجای دنیا اینطوری سود می دهند!!!:متفکر:
لطفا دقت کن!!!! :لبخند:مشکل از یک جا دیگه هست!!!!
دوستان لطفا راهنمایی کنند!!!

سپاس

aliagamon
پنج شنبه 01 خرداد 1393, 20:06 عصر
والا من زیاد از کاره بانکا سر در نمیارم اگه منظور از 21 سود یعنی 21 درصد در ماه خوب 1 و خورده ای میره روش ....:لبخند:
اگه در یک سال 21 درصد میدن میشه حدود 100 هزار تومن ....
کلا نمیدونم کار بانک ها چطوریه ...و فکر کنم تو فرمول باید در 121/100 ضرب بشه ... (بازم بگم من نمیدونم فرمول سود بانک ها چیه>..)
ولی اگه یه کد برای برداشتن دو رقم اخر میخواین چندین راه هست اما یکی از بهترینشون اینه که تقسیم بر 100 کنین و بعد عدد خروجی رو به عدد صحیح ( int ) باید cast کنین ...:لبخند:

eletcomp
پنج شنبه 01 خرداد 1393, 21:03 عصر
ولی اگه یه کد برای برداشتن دو رقم اخر میخواین چندین راه هست اما یکی از بهترینشون اینه که تقسیم بر 100 کنین و بعد عدد خروجی رو به عدد صحیح ( int ) باید cast کنین
ممنون دوست عزیز: طبق گفته هاتون جمع کل را بر 100 تقسیم کردم و ظاهرا که ان 2 عدد مزاحم حذف شده!:لبخند: متشکر
الان یک سئوال داشتم »فرق بین decimal با double در چی هست!!!! برای چی میگن decimal برای محاسبات بهتر هست!!!! الان من امتحان کردم دیدم دسیمال اصلا اعشاری نمیزنه!! ولی دابل اعشاری می کنه اعداد!!!! مگه هر دو اعشاری نیستند!!



سود بانکی روزانه رو که اینجوری حساب نمی کنن، این جوری حساب می شه:
(اصل پول * سود بانکی / 36500) * تعداد روز
ممنون: فرمول سود بانکی زیاد هست ولی هدف یاد گرفتن هست
:لبخند:

سپاس

Share & Learn
پنج شنبه 01 خرداد 1393, 21:09 عصر
ممنون: فرمول سود بانکی زیاد هست ولی هدف یاد گرفتن هست
:لبخند:
سپاس

خواهش می کنم
فرمول سود بانکی زیاد نیست، فرمول کلی یکیه / بسته به هدف شما ( سود روزانه، ماهانه، سالانه و ...) تغییر می کنه
اینجا که گفتم تقسیم بر 36500 بشه در واقع یعنی هم تقسیم بر 365 شده هم بر 100
تقسیم بر 100 می شه چون می خواین 21 درصد پول رو حساب کنید و تقسیم بر 365 چون می خواین سود روزانه رو حساب کنید
حالا اگه می خواستید سود ماهانه رو حساب کنید می شد این:
(اصل پول * سود بانکی / 1200)
و همین طور برای اهداف مختلف یک مقداری فرمول اصلی رو تغییر می دید...