PDA

View Full Version : نمایش ندادن اعشار



ehsanocx
سه شنبه 15 تیر 1389, 13:00 عصر
با سلام
چطوری میتونم کدی بنویسم که اگر حاصل تقسیم 2تا عدد بر هم اعشاری شد مثلا 0.3652
.0 رو برداره و عدد روی توی یک تکست نمایش بده و اگرم اعشاری نشد خود عدد رو نمایش بده؟
چطوری می تونم چنین کاری کنم؟

fazelm
سه شنبه 15 تیر 1389, 13:12 عصر
با سلام
چطوری میتونم کدی بنویسم که اگر حاصل تقسیم 2تا عدد بر هم اعشاری شد مثلا 0.3652
.0 رو برداره و عدد روی توی یک تکست نمایش بده و اگرم اعشاری نشد خود عدد رو نمایش بده؟
چطوری می تونم چنین کاری کنم؟

شما اگر این طور تقسیم کنید :

text1.text = 3 / 2
جواب میشه 1.5 و اعشاری بدست میاد ولی اگر اینطور بنویسید :

text1.text = 3 \ 2
جواب میشه 1 یعنی همون که شما می خواهید در نتیجه به جای / شما \ را بنویسید

ehsanocx
سه شنبه 15 تیر 1389, 18:47 عصر
این راه معتبری نیست

M.T.P
سه شنبه 15 تیر 1389, 18:52 عصر
Dim S As String
Dim I As Integer
S = "0.23514"
I = InStr(1, S, ".")
If I <> 0 Then S = Mid(S, I + 1)
Cls
Print S

fazelm
سه شنبه 15 تیر 1389, 18:54 عصر
این راه معتبری نیست

این حرف اصلا منطقی نیست
یعنی چی معتبر نیست ؟؟؟؟؟؟؟؟؟ :عصبانی:

M.T.P
سه شنبه 15 تیر 1389, 18:58 عصر
این راه معتبری نیست

ایشون راه حلشون معتبر هست ولی با نیاز شما مرتبط نیست.

fazelm
سه شنبه 15 تیر 1389, 19:07 عصر
دستور کامل به این صورت میشه :


text1.text = (3/2) - (3\2)

که در این صورت فقط 5 رو نمایش میده به جای 1.5 فکر کنم این منظور شما بود - درسته ؟؟

ehsanocx
سه شنبه 15 تیر 1389, 22:43 عصر
توی این جمله :
18A211IRI22;T=27;$GPGGA,120016.000,0000.0000,N,000 00.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*69$GPGSA,A,1, ,,,,,,,,,,,,0.0,0.0,0.0*30$GPRMC,120016.000,V,3154 .0455,N,05418.6971,E,000.0,000.0,280606,,,N*78;000 000000;
می خوام بگم هر جا GPRMC بود از 14 رقم بعدش که میشه از ,V تا اول ,n, رو بگیره توی یک تکست بریزه و از ,n بگیره باز تا اول ,e, رو بریزه توی یک تکست دیگه چطوری می تونم چنین کاری کنم؟

که میشه : 3154.0455
و 05418.6971

میشه راهنمایی کنید؟

ahmads
چهارشنبه 16 تیر 1389, 01:43 صبح
سلام

ببخشید من ادامه ی بحث رو دنبال نکردم، اما بعد از خوندن پست اول این کد به نظرم رسید که شاید براتون مفید باشه


x = Text1 / Text2
If x >= 1 Then Print x Else: Print Right$(x, Len(x) - 2)

parselearn
چهارشنبه 16 تیر 1389, 12:51 عصر
Dim s, s1, s2 As String
Dim m, n As Integer
s = "18A211IRI22;T=27;$GPGGA,120016.000,0000.0000,N,000 00.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*69$GPGSA,A,1, ,,,,,,,,,,,,0.0,0.0,0.0*30$GPRMC,120016.000,V,3154 .0455,N,05418.6971,E,000.0,000.0,280606,,,N*78;000 000000"
m = InStr(s, "GPRMC")
s = Mid(s, m, Len(s))
m = InStr(s, ",V,", CompareMethod.Binary)
s = Mid(s, m + 3, Len(s))
n = InStr(s, ",N,")
s1 = Mid(s, 1, n - 1)
s = Mid(s, n + 3, Len(s))
n = InStr(s, ",E,")
s2 = Mid(s, 1, n - 1)
MsgBox(s1)
MsgBox(s2)

ehsanocx
چهارشنبه 16 تیر 1389, 13:17 عصر
میشه این کد رو توضیح بدی دوست من؟ خط به خط؟
ممنون میشم ازت.
واقعا ممنون که کمکم کردی

ehsanocx
چهارشنبه 16 تیر 1389, 13:32 عصر
CompareMethod.Binary یعنی چی؟ به این خطا میگیگره type mistach میده چرا؟ باید چیکار کنم؟

parselearn
چهارشنبه 16 تیر 1389, 16:39 عصر
Dim s, s1, s2 As String
Dim m, n As Integer
s = "18A211IRI22;T=27;$GPGGA,120016.000,0000.0000,N,000 00.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*69$GPGSA,A,1, ,,,,,,,,,,,,0.0,0.0,0.0*30$GPRMC,120016.000,V,3154 .0455,N,05418.6971,E,000.0,000.0,280606,,,N*78;000 000000"
m = InStr(1, s, "GPRMC")
s = Mid(s, m, Len(s))
m = InStr(1, s, ",V,")
s = Mid(s, m + 3, Len(s))
n = InStr(1, s, ",N,")
s1 = Mid(s, 1, n - 1)
s = Mid(s, n + 3, Len(s))
n = InStr(1, s, ",E,")
s2 = Mid(s, 1, n - 1)
MsgBox (s1)
MsgBox (s2)


من كد رو در .net نوشتم
فكر نميكردم اين قدر تفاوت داشته باشه
كد اصلاح شد


من از دو تابع استفاده كردم
تابع InStr براي بدست آوردن جايگاه رشته مورد نظرمون. خروجي عدد صحيح
مثال من داخل رشته s به دنبال "GPRMC" كه نقطه شروع 1 تعيين شده

تابع Mid: براي جدا كردن رشته اي از داخل رشته اي ديگر
به Parameteer info توجه كنيد


جستجو كنيد...
قبلا توضيح زياد داده شده است