چطور میشه تعداد ارقام اعشار حاصل تقسیم رو در mmb کنترل کرد؟
مثلا تعیین کنیم که نتیجه تا 5 رقم اعشار باشه
روش اول با منطق ریاضی :
یه تابع به اسم INT هست که عدد اعشاری رو به صحیح گرد می کنه، خوب ما می تونیم از این تابع کمک بگیریم.
INT در واقع یک فیلتره که قسمت اعشاری رو حذف می کنه، حالا اگه ما یک عدد اعشاری رو قبل از فیلتر کردن
صد برابر کنیم چه اتفاقی می افته؟ دو رقم اعشاری اش به صحیح تبدیل میشه و از فیلتر عبور می کنه.
بعدا می تونیم مجددا تقسیم بر صد اش کنیم تا دوباره به بخش اعشاری برگردند.
مثلا تقسیم عدد a بر b با 4 رقم اعشاری :
کد:
a=1
b=3
c=INT(10000*(a/b))/10000
حالا می تونیم این چند رقم اعشاری با یک متغیر مثل n نشون بدیم (مجبوریم عملگر توان رو پیاده سازی کنیم) :
کد:
a=1
b=3
n=4
x=1
For i=1 To n
x=x*10
Next i
c=INT(x*(a/b))/x
روش دوم با تبدیل به رشته :
ما می تونیم یک مقدار عددی رو با تابع CHAR به رشته تبدیل کنیم، در ضمن می تونیم موقعیت نقطه اعشار
رو با تابع POS پیدا کنیم. بعد می تونیم طول اون رشته رو با تابع StrDel یا StrCopy طوری کم کنیم تا فقط
یک تعداد رقم بعد از اون نقطه در رشته باقی بمونه. نهایتا هم رشته حاصل رو به عدد بر می گردونیم :
کد:
a=1
b=3
n=4
c=a/b
c$=CHAR(c)
i=POS('.',c$)
If (i > 0) Then
i=i+n
c$=StrCopy(c$,1,i)
End
c=VAL(c$)