جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.


×
×
با حمایت نقدی خود در افزایش سطح کیفی خدمات لام تا کام سهیم باشید.
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

بهترین دیتا تایپ برای ذخیره مقادیر پولی


2
0
1916

سلام دوستان برای داده های پولی (تومان و ارزهای دیجیتال) چه دیتا تایپی مناسبه؟ و یسری از پروژه ها رو که دیدم برای چنین مقادیری از string استفاده کرده بودن. استفاده از این دیتا تایپ برای مقادیر پولی مشکلی بوجود نمیاره؟

تکنولوژی برنامه-نویسی پایگاه-داده
ویرایش شده در 4 سال قبل
سوال شده در مجتبی دلشاد
275 امتیاز

2
از چه دیتابیسی استفاده میکنی؟ ــ سجاد شفی زاده در 4 سال قبل
1
به طور کلی در اغلب دیتابیس های رابطه ای Relational (مثل MySQL، SQL-Server, PostgreSQL و ...) دیتا تایپی DataType که برای ذخیره مقادیر پول و وابسته به اون پیشنهاد میشه Decimal هست. حالا بسته به دقت محاسبات، میتونی fraction رو در نظر بگیری. ــ سجاد شفی زاده در 4 سال قبل

500 کاراکتر باقی مانده

2 جواب

3

سوالی خوب پرسیدید، مشابهش رو 2 بار در وب سایت استک آور فلو پرسیدن و جوابهای مشابهی هم دریافت کردن:

  1. Best data type to store money values in MySQL
  2. Best data type for storing currency values in a MySQL database

همونطور که آقای @شفی.زاده در پیام ها هم فرمودند، بهترین نوع داده برای ذخیره و نگهداری مقادیر پولی، دسیمال Decimal هستش. من خودم همیشه نسبت به میزان اندازه اعداد از یکی از این دو حالت استفاده میکنم:

decimal(15,2)
Decimal(19,4)

همانطور که در داکیومنتیشن هم میبینید، DECIMAL(M,D) تعریف شده که:

  • M باید یک عدد باشه بین 1 تا 65 که تعداد اعداد صحیح رو نشون میده. به عنوان مثال اگر M عدد 3 باشه، اعداد 111 تا 999 رو پشتیبانی میکنه.

  • D باید یک عدد باشه بین 0 تا 30 که تعداد اعداد بخش اعشاری (fraction) یک عدد رو نشون میده. مثلا اگر D عدد 2 باشه، یعنی اعداد میتونن تا 2 رقم اعشار ذخیره بشن.

بد نیست اینم بگم که توی دیتابیس مای اس کیو ال Mysql، به دسیمال، نامریک هم میگن Numeric که توی داکیومنتیشن هم دقیقا نوشته که زمانی باید از این دیتا تایپ استفاده بشه که بخوایم دقت دقیق اعداد رو حفظ و نگهداری کنیم. مثلا monetary (یا همون مقادیر پولی)

نکته 1: اگر M حذف بشه (یا مشخص نشه)، به طور پیشفرض مقدار 15 براش در نظر گرفته میشه؛ و اگر D حذف بشه (یا همون مشخص نشه)، به صورت پیش فرض مقدار 0 براش در نظر گرفته میشه.

نکته 2: باید همیشه مقدار M از مقدار D بزرگتر باشه. یعنی decimal(1,2) قابل قبول نیست.

جواب داده شده در سعید مرادی
1858 امتیاز

2
نکته خیلی خوبی بود، نمیدونستم که دسیمال و نامریک توی MySQL دقیقا یکسان هستند. مرسی +1 ــ ساناز رضایی در 4 سال قبل

500 کاراکتر باقی مانده


5

همانطور که آقای مرادی توضیح دادند بهترین نوع داده اعداد اعشاری (DECIMAL) هست.

اما توضیحات درباره سیستم دسیمال Decimal در MySQL اشتباه است.


Fixed-Point Types

طبق داکیومنتیشن یک نوع داده ممیز ثابت به صورت DECIMAL(M,D) تعریف می شود:

  • M نشان دهنده تعداد ارقام هست. برای مثال DECIMAL(3) همه ی اعداد ۹۹۹- تا ۹۹۹+ را شامل می شود.
  • D نشان دهنده این است که چند رقم از رقم های M اعشار هستند. برای مثال DECIMAL(4,2) به معنای یک عدد ۴ رقمی که ۲ رقم از آن اعشار و ۲ رقم از آن صحیح میباشد. یعنی همه ی اعداد از ۹۹.۹۹- تا ۹۹.۹۹+ را شامل می شود.
ویرایش شده در 4 سال قبل
جواب داده شده در S Kill
558 امتیاز

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


لام تا کام نسخه صفحه کلید نیز راه اندازی شده است. شما با استفاده از کلیدهای موجود بر روی صفحه کلید دستگاهتان می توانید با وب سایت ارتباط برقرار کنید.
لیست کلید های میانبر

تبلیغات توضیحی


اقتصاد رفتاری بررسی روشهای تاثیرگذار بر رفتار کاربران
مردم همیشه به دنبال چیزهایی هستند که نمیتونن اونارو داشته باشن، و با به سادگی نمیتونن اون رو به دست بیارن.

تبلیغات تصویری


محک