SQL Server
3.99K subscribers
26 photos
7 videos
36 files
169 links
حمید رضا صادقیان

🔴طراح‌ومشاوربانک های اطلاعاتیSQLSERVER
⚫️مدرس دوره های آموزشیDatabase

ارتباط با من:
@Hamidreza_Sadeghian

گروه تبادل نظر:
https://t.me/+uIc1qhv58gU0NWQ0
Download Telegram
سلام خدمت دوستان عزیزم
امیدوارم عالی عالی باشین

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

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

مثلا فرض کنید

1.5*1.8 = 2.7 . اگه رند بشه خوب میشه ۳ یا اگه کمتر از ۲.۵ باشه میشه ۲ . ولی این میخواد در هر حالتی عدد ۲ برگرده.

خوب میتونه از تابع Round استفاده کنه.

Round(1.5*1.8,0,1)

که اون پارامتر اخر دقیقا همین کارو میکنه و قسمت اعشاری رو Truncate میکنه.

چالش اینجا بود سر این دو عدد با این که ضربش یک عدد حقیقی میشد ولی یک ریال کسر میکرد ازش.

۱۳۵.۷ * ۳۵۹۴۰۰ = ۴۸۷۷۰۵۸۰ باید بشه ولی عدد ۴۸۷۷۰۵۷۹ رو این تابع برمیگردوند.

برام خیلی جالب بود . رفتم دیتا تایپهای دیتابیسش رو بررسی کردم دیدم جفت فیلدهارو از نوع Float گرفته. اونارو به Decimal تبدیل کردیم درست شد.

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

شاد باشین و شکرگزار
حمیدرضا صادقیان
@Hamidreza_Sadeghian

#TSQL

#SQL
👍2914👌7👏1