PDA

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



عباس سرخ خان کاشانی
سه شنبه 04 آبان 1389, 18:53 عصر
سلام به همه دوستان
من در یه query تقسیم زیرو انجام دادم ولی نتیجه میشه = 3333
لطفا راهنمائی کنید من تا به عدد = 3333.3333333333333333333333333333 برسم.

30/100000= 3333.3333333333333333333333333333
با تشکر

mohsensaghafi
سه شنبه 04 آبان 1389, 19:55 عصر
سلام دوست عزیز.
این مشکل به دلیل نوع برخود SQL Server با عملگر تقسیم رخ می دهد. زمانی که عملوند های تقسیم هر دو داده نوع integer باشند حاصل بصورت خارج قسمت برگردانده می شود. برای حل این مشکل یکی از عملوند ها را به float تبدیل کنید.
موفق باشید.


select convert(float,10000)/30

عباس سرخ خان کاشانی
چهارشنبه 05 آبان 1389, 10:56 صبح
آقا محسن تشکر
حالا اگر همین عدد و بخواهیم اعشارش کم و زیاد بشه چه باید کرد؟

mohsensaghafi
چهارشنبه 05 آبان 1389, 11:53 صبح
آقا محسن تشکر
حالا اگر همین عدد و بخواهیم اعشارش کم و زیاد بشه چه باید کرد؟

سلام دوست عزیز.
از تابع Round استفاده کنید. اولین پارامتر عدد یا عبارتیست که می خواهید آن را رند کنید. و پارامتر دوم تعداد اعشاری است که می خواهید در عدد باقی بماند.
موفق باشید.


select round(CONVERT(float,2000)/3,5)

عباس سرخ خان کاشانی
چهارشنبه 05 آبان 1389, 13:22 عصر
نشد
select round(CONVERT(float,2000)/3,5)
result = 666.66666999999995

میخوام بشه = 666.66667

mohsensaghafi
چهارشنبه 05 آبان 1389, 15:58 عصر
سلام دوست عزیز.
از چه نسخه ای استفاده می کنید.
من از 2008 استفاده می کنم و حاصل را در زیر مشاهده می کنید.
موفق و پیروز