PDA

View Full Version : دو مشکل جالب



modirmasool
شنبه 09 مرداد 1389, 12:46 عصر
1- دوستان نمیدونم چرا وقتی کدهای زیر اجرا میشن یه بار داده به بالا رند میشه و یه بار به پایین.


Print Round(10.5)
Print Round(11.5)

کلا اگه قبل از اعشار عدد به صفر ختم بشه اون وقت عددمون به پایین رند میشه. مثلا جواب اولی میشه 10 ولی جواب دومی میشه 12 !!!

-------------------------------------------------------------
2- کد زیر رو نگاه کنین:


Private Sub Command1_Click()
Dim a As String
a = "10"
Print a + 10
End Sub

خروجی اش میشه 20 !!!
مگه وقتی متغیر رو رشته ای تعریف میکنی میشه بدون استفاده از val اون رو با عدد جمع کنی؟

M.T.P
شنبه 09 مرداد 1389, 14:48 عصر
Print Round(10.5)
Print Round(11.5)

خود شما چه تصمیم میگیرید؟ :لبخند:
خب وقتی اعشار 0.5 باشه باید بالاخره یه کاری کرد دیگه ، VB در اینطور مواقع عدد شما رو زوج میکنه. یعنی اگه عدد شما زوج باشه ، اعشارش رو دور میریزه و اگه فرد باشه 0.5 واحد بهش اضافه میکنه تا زوج شه. :چشمک:


2- کد زیر رو نگاه کنین:


Private Sub Command1_Click()
Dim a As String
a = "10"
Print a + 10
End Sub

خروجی اش میشه 20 !!!
مگه وقتی متغیر رو رشته ای تعریف میکنی میشه بدون استفاده از val اون رو با عدد جمع کنی؟

درسته نمیشه رشته رو با عدد جمع کرد اما شیرین بودن زبان VB به همین خاطره و VB به جای شما Val رو میزاره ، اما فقط در صورتی که متغیر شما فقط دارای کاراکترهای عددی باشه در غیراینصورت با Error مواجه خواهید شد. به عنوان مثال اگه متغیر شما مقدارش S10 باشه دیگه جمع کردنش ممکن نیست.