PDA

View Full Version : سوال: مقایسه اعداد اعشاری و پولی



mmbguide
شنبه 11 مهر 1394, 08:28 صبح
سلام به همه

من هر چقدر میخونم نمیتونم وجود این همه متغیر رو درک کنم. مثلا فرق double, float, decimal دقیقا چیه؟ تو اکثر کتاب ها نوشته decimal دقتش پایینه یعنی چی؟ مقادیر پولی دیگه چه معنایی داره (البته در SQL)؟ حالا اگه بخوام در یک بانک مقادیر پولی ذخیره کنم در C# چه نوع داده ای باید انتخاب کنم؟
یا مثلا اگر تعداد 3 رقم اعشار در محاسبات من نیاز باشه کدوم نوع متغیر ناسبه؟
لطفا مثال های واضح عنوان کنید.

ممنون

davood1370p
شنبه 11 مهر 1394, 13:59 عصر
سلام به همه

من هر چقدر میخونم نمیتونم وجود این همه متغیر رو درک کنم. مثلا فرق double, float, decimal دقیقا چیه؟ تو اکثر کتاب ها نوشته decimal دقتش پایینه یعنی چی؟ مقادیر پولی دیگه چه معنایی داره (البته در SQL)؟ حالا اگه بخوام در یک بانک مقادیر پولی ذخیره کنم در C#‎‎‎‎ چه نوع داده ای باید انتخاب کنم؟
یا مثلا اگر تعداد 3 رقم اعشار در محاسبات من نیاز باشه کدوم نوع متغیر ناسبه؟
لطفا مثال های واضح عنوان کنید.

ممنون

دوست عزیز ، تفاوتشون تو دقت رقم اعشارشونه و اتفاقا دقت decimal از همه بالاتره. float دقتش 7 رقم اعشاره ، double دقت ۱۵ تا ۱۶ رقم اعشار و decimal دقت ۲۸-۲۹ رقم میتونه داشته باشه . برای سه رقم float مناسبه
مقادیر بولی در SQL مثل همون کد c# رو میتونی با متغیر Boolean تعریف کنی که دو مقدار true , false داره مثلا:
Boolean b = True;

mmbguide
یک شنبه 12 مهر 1394, 00:02 صبح
ممنونم. منظورم boolean نبود بلکه mony (پولی) بود

آقای الیان
چهارشنبه 22 مهر 1394, 23:13 عصر
سلام دوست عزیز

من شخصا معمولا از double استفاده می کنم چون float نیاز به کست کردن داره بعضی وقتا . اگر هم دقت اندازه گیری خیلی اهمیت زیادی داشت, مثلا محاسبه مالی , از decimal استفاده کن.

موفق باشید.

hamzehsh
جمعه 24 مهر 1394, 09:25 صبح
سلام

تقریبا هر سه یک کار انجام میدهند. تفاوت در دقت انجام کار هست.
اگر محاسبات خیلی دقیق میخواهید انجام بدهید از decimal استفاده کنید. ( بهترین نوع داده برای حسابهای بانکی{مالی} هست)
اگر تعداد رقم اعشار متوسط میخواهید یعنی با دقت کمتر double بهتر است استفاده کنید ( برنامه حسابداری متوسط)
float هم برای کارهای عادی و تقریبا بی اهمیت

pbm_soy
جمعه 24 مهر 1394, 13:17 عصر
دقت کنیددوستان هیچ کاری بی اهمیت نیست! اگر بی اهمیت باشد چرا برنامه اش را کینویسید؟!
مورد بعدی این بحث نوعهای داده ای قبلا هم مفصل مطرح شده است
اگه decimal برای پول خوبه پس mony برای چیه؟! مایکروسافت برای چی تعریفش کرده؟! هرچند که decimal احتمالا از پس محاسبات پولی برنامه های ما برخواهد آمد!
به لینکها زیر یک سربزنید

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f24acf6c-a518-4f0a-a13e-0172e700564c/money-vs-decimal-in-business-applications?forum=transactsql



http://sqlstudies.com/2014/06/02/what-is-the-difference-between-money-and-decimal194/


http://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql-server