View Full Version : سوال: نوع numeric(18,0)
s_mokhtari
چهارشنبه 31 شهریور 1389, 16:52 عصر
سلام
دوستان نوع numeric(18,0)چيكار ميكنه براي ذخيره چي استفاده ميشه
ممنون:ناراحت:
بهزادصادقی
چهارشنبه 31 شهریور 1389, 17:58 عصر
اعدادی را که تا حد 18 رقم سمت چپ علامت ممیز رقم دارند و بعد از ممیز هیچ رقمی ندارند را ذخیره می کند. یعنی تمام احداد صحیح از 0 تا 999999999999999999.
s_mokhtari
چهارشنبه 31 شهریور 1389, 18:00 عصر
اعدادی را که تا حد 18 رقم سمت چپ علامت ممیز رقم دارند و بعد از ممیز هیچ رقمی ندارند را ذخیره می کند. یعنی تمام احداد صحیح از 0 تا 999999999999999999.
سلام
پس فرقش با int چيه
:خجالت::خجالت:
بهزادصادقی
چهارشنبه 31 شهریور 1389, 18:55 عصر
کد زیر را ببینید:
declare @d18 decimal(18,0);
declare @d38 decimal(38,0);
declare @i int;
set @d18 = 999999999999999999;
set @d38 = 99999999999999999999999999999999999999;
set @i = 2147483647;
select datalength( @i ) IntLength, datalength( @d18 ) Dec18Length, datalength( @d38 ) Dec38Length;
1. حداکثز مقداری که یک متغیر از نوع int می تواند در درون خود ذخیره کند 2147483647 می باشد. ولی یک متغیر از نوع
decimal(18,0)
می تواند تا حد یک عدد که از 18 تا رقم 9 تشکیل شده است مقدار بپزیرد.
2. تعریف حجم داده های int همیشه یکسان است. یک متغیر int که null نیست، همیشه، بدون استثنا 4 بایت فضا می برد. ولی یک متغیر از نوع decimal 18 0 اگر مقدارش 1 باشد، 5 بایت فضا می برد ولی اگر 18 تا 9 باشد، 9 بایت فضا می برد.
3. نوع decimal برای این ساخته شده که شما بتوانید تعریف کنید که range اعدادی که باهاشان کار می کنی چیست. شما به جای 18 می توانید بگویید 20، و بعد تا بیست رقم قبل از ممیز می توانید استفاد کنید. حداکثز تعداد ارقام قبل از ممیز در این نوع 38 می باشد.
4. اگر به جای (0, 18) از مثلا (5, 18) در تعریف نوع متغیر خویش استفاده کنید، آن وقت متغیر شما می توانید اعداد حقیقی را هم اسکان دهد. عدد سمت راست درون پرانتز تعداد حداکثز رقم های بعد از ممیز می باشد.
s_mokhtari
پنج شنبه 01 مهر 1389, 09:21 صبح
کد زیر را ببینید:
declare @d18 decimal(18,0);
declare @d38 decimal(38,0);
declare @i int;
set @d18 = 999999999999999999;
set @d38 = 99999999999999999999999999999999999999;
set @i = 2147483647;
select datalength( @i ) IntLength, datalength( @d18 ) Dec18Length, datalength( @d38 ) Dec38Length;
1. حداکثز مقداری که یک متغیر از نوع int می تواند در درون خود ذخیره کند 2147483647 می باشد. ولی یک متغیر از نوع
decimal(18,0)می تواند تا حد یک عدد که از 18 تا رقم 9 تشکیل شده است مقدار بپزیرد.
2. تعریف حجم داده های int همیشه یکسان است. یک متغیر int که null نیست، همیشه، بدون استثنا 4 بایت فضا می برد. ولی یک متغیر از نوع decimal 18 0 اگر مقدارش 1 باشد، 5 بایت فضا می برد ولی اگر 18 تا 9 باشد، 9 بایت فضا می برد.
3. نوع decimal برای این ساخته شده که شما بتوانید تعریف کنید که range اعدادی که باهاشان کار می کنی چیست. شما به جای 18 می توانید بگویید 20، و بعد تا بیست رقم قبل از ممیز می توانید استفاد کنید. حداکثز تعداد ارقام قبل از ممیز در این نوع 38 می باشد.
4. اگر به جای (0, 18) از مثلا (5, 18) در تعریف نوع متغیر خویش استفاده کنید، آن وقت متغیر شما می توانید اعداد حقیقی را هم اسکان دهد. عدد سمت راست درون پرانتز تعداد حداکثز رقم های بعد از ممیز می باشد.
سلام
دوست عزيز پس numeric(18,0) همون دسيمال و توي سيشارپ بخواهيم استفاده كنيم نوعش IN64 يا DECIMAL
2- كدوم بهتر INT يا numeric(18,0
ممنون:تشویق:
بهزادصادقی
پنج شنبه 01 مهر 1389, 10:33 صبح
سلام
دوست عزيز پس numeric(18,0) همون دسيمال و توي سيشارپ بخواهيم استفاده كنيم نوعش IN64 يا DECIMAL
2- كدوم بهتر INT يا numeric(18,0
ممنون:تشویق:
بعله، معذرت، یادم رفت بگویم که numeric و decimal دقیقا یک چیز هستند. دو اسم برای یک مفهوم واحد.
من سالهاست از سی شارپ استفاده نکرده ام، پس نمی دونم کدام یک به کدام type سی شارپ می خورد.
اینکه کدام برای شما بهتر است بستگی دارد به نیازهای برنامه شما. کدام بهتر است: یک بشقاب خورش قورمه سبزی یا یک دستگاه وانت زامیاد؟ خوب بستگی دارد، اگر گشنه هستید و می خواهید غذا بخورید، قورمه سبزی. ولی اگر می خواهید اسباب کشی کنید، وانته.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.