تبدیل conv
تبدیل عدد و مقدار منطقی به متن و برعکس، با پشتیبانی از رقمهای فارسی.
واردسازی تبدیل
متنی که از کاربر، پرونده یا شبکه میرسد همیشه رشته است؛ برای حساب کردن باید آن را به عدد تبدیل کنید، و برای نمایش نتیجه دوباره به متن. بستهی تبدیل هر دو سوی این کار را انجام میدهد.
روالهای تجزیه رقمهای فارسی (۰۱۲۳۴۵۶۷۸۹) و عربی (٠١٢٣٤٥٦٧٨٩) را هم میفهمند، پس عددی که کاربر فارسیزبان تایپ میکند بیدردسر خوانده میشود. این روالها خطا نمیدهند: از اول رشته تا جایی که عدد معنا دارد میخوانند و بقیه را کنار میگذارند، و اگر هیچ رقمی پیدا نکنند صفر برمیگردانند.
روالها
قالب عدد بی علامت FormatUint
روال قالب عدد بی علامت(x: طبیعی۶۴): رشتهواردسازی تبدیل
روال ریشه:
سرچاپ تبدیل.قالب عدد(-۱۲۰۰)
سرچاپ تبدیل.قالب عدد بی علامت(۱۸۴۴۶۷۴۴۰۷۳۷۰۹۵۵۱۶۱۵ برگردان طبیعی۶۴)
سرچاپ تبدیل.قالب منطقی(نادرست)
سرچاپ تبدیل.قالب شانزده(۴۰۹۶ برگردان طبیعی۶۴)
پایانقالب عدد FormatInt
روال قالب عدد(n: صحیح۶۴): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: conv-FormatInt.salam
قالب منطقی FormatBool
روال قالب منطقی(b: منطقی): رشتهدرست را به "true" و نادرست را به "false" تبدیل میکند.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-FormatInt.salam
تجزیه منطقی ParseBool
روال تجزیه منطقی(s: رشته): منطقی"true"، "1" و "yes" (با فاصلهی اضافه در دو سو) درست به حساب میآیند و هر چیز دیگری نادرست.واردسازی تبدیل
روال ریشه:
سرچاپ تبدیل.تجزیه عدد(" -۲۷ ")، تبدیل.تجزیه عدد("-27")، تبدیل.تجزیه عدد("12abc")، تبدیل.تجزیه عدد("سلام")
سرچاپ تبدیل.رشته به عدد("+15")
سرچاپ تبدیل.تجزیه شانزده("0xff")، تبدیل.تجزیه شانزده("1A")
سرچاپ تبدیل.تجزیه منطقی("yes")، تبدیل.تجزیه منطقی(" true ")، تبدیل.تجزیه منطقی("نه")
پایانتجزیه عدد ParseInt
روال تجزیه عدد(s: رشته): صحیح۶۴+ یا - پذیرفته است. رقم فارسی، عربی و انگلیسی همه قبولاند و خواندن با اولین نویسهی غیررقمی تمام میشود.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseInt.salam
رشته به عدد Atoi
روال رشته به عدد(s: رشته): صحیحتجزیه عدد است، ولی نتیجه را به صحیح (۳۲ بیتی) برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseInt.salam
تجزیه اعشار ParseFloat
روال تجزیه اعشار(s: رشته): اعشار۶۴2.5e3 و رقمهای فارسی با ممیز فارسی (۳٫۷۵) هم پذیرفتهاند.واردسازی تبدیل
روال ریشه:
ع := تبدیل.تجزیه اعشار("۳٫۷۵")
سرچاپ ع * ۲
سرچاپ تبدیل.قالب اعشار(۰.۱ + ۰.۲)
سرچاپ تبدیل.قالب اعشار کوتاه(۰.۱ + ۰.۲)
سرچاپ تبدیل.قالب اعشار با دقت(۲.۰ / ۳.۰، ۳)
ن := تبدیل.تجزیه اعشار("nan")
سرچاپ تبدیل.نامعتبر است(ن)، تبدیل.نامعتبر است(ع)
پایاننامعتبر است IsNaNF
روال نامعتبر است(x: اعشار۶۴): منطقی"nan". هیچ مقایسهای با == این حالت را تشخیص نمیدهد، چون NaN با خودش هم برابر نیست.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseFloat.salam
قالب اعشار FormatFloat
روال قالب اعشار(x: اعشار۶۴): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseFloat.salam
قالب اعشار کوتاه FormatFloatShort
روال قالب اعشار کوتاه(x: اعشار۶۴): رشته۰.۱ + ۰.۲ را 0.3 مینویسد.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseFloat.salam
قالب اعشار با دقت FormatFloatPrec
روال قالب اعشار با دقت(x: اعشار۶۴، prec: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseFloat.salam
قالب شانزده FormatHex
روال قالب شانزده(x: طبیعی۶۴): رشته0x.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-FormatInt.salam
تجزیه شانزده ParseHex
روال تجزیه شانزده(s: رشته): صحیح۶۴0x اختیاری است و حروف کوچک و بزرگ هر دو قبولاند.نمونهی این مورد همراه با موارد بالاتر آمده است: conv-ParseInt.salam