PDA

View Full Version : فیلدهای اعشاری



DataMaster
دوشنبه 02 مهر 1386, 23:41 عصر
سلام
من یه فیلد از نوع اعشاری تعیین کردم ؛ از طریف اپلیکشین اعداد رو توی جدول ثبت میشه و درست هم ثبت میشه
اما در کوئری ها بعضی اعداد به صورت تقریبی نمایش داده میشوند مانند 5.2 به صورت 5.1999998 نمایش داده میشه
چرا فقط بعضی اعداد اینطوری میشه و چطوری مشکل رو باید رفع کنم؟

MShirzadi
سه شنبه 03 مهر 1386, 00:04 صبح
این به دلیل این هست که دقت اعشار SQL Server برای این اعداد کم است
یعنی اگر اعشار این اعداد را به دودویی تبدیل کنی مقدار طول آنها بسیار زیاد و گاهی هم نا محدود هست
برای رفع مشکل هم اگر گیر محاسبات نباشی میتونی نوع داده ی خودت رو عوض کنی یعنی مثلا بذاری Nvarchar

DataMaster
سه شنبه 03 مهر 1386, 00:22 صبح
برای محاسبات به عددی که دقیقا ثبت میشود نیاز دارم حتی یکصدم نباید کم و زیاد بشه

MShirzadi
سه شنبه 03 مهر 1386, 03:00 صبح
من الان تست کردم
اولا اگر بخواب از SQL Server2005 استفده کنی این مشکل وجود نداره
ثانیا این مشکل هم در SQL Server 2000 برای تنها نمایش اطلاعات هست یعنی محاسبات رو دقیق انجام می ده این قضیه رو هم میتونی تست کنی یعنی او فیلدی مقدارش 5.2 هست رو در 2 ضرب کن ونتایجش رو ببین خودت متوجه می شی

DataMaster
سه شنبه 03 مهر 1386, 08:35 صبح
خوب منم تو نمایش هم مشکل دارم
هیچ تابعی نداره که این قالب بندی رو انجام بده و این مشکل برطرف بشه؟

پویا
سه شنبه 03 مهر 1386, 12:21 عصر
از نوع داده ای Decimal استفاده کن
این درد سر رو نداره