اعداد اعشاری (Reals)
انواع اعشاری، دقت، نمایش علمی و فرمتبندی خروجی اعداد اعشاری.
اعداد اعشاری در پاسکال
وقتی به کسر نیاز دارید — قیمت، قد، میانگین، π — از انواع اعشاری استفاده کنید:
| نوع | حجم | دقت (رقم معنادار) |
|---|---|---|
single | ۴ بایت | ~۷ رقم |
<strong>real</strong> | ۸ بایت | ~۱۵ رقم |
double | ۸ بایت | ~۱۵ رقم |
extended | ۱۰ بایت | ~۱۹ رقم |
در Free Pascal مدرن،
real و double هر دو ۸ بایت با دقت ۱۵ رقماند — از real استفاده کنید.تعریف و تخصیص
var
price, discount, finalPrice: real;
begin
price := 1250000.50;
discount := 0.2; { ۲۰ درصد }
finalPrice := price - price * discount;
writeln(finalPrice:0:2); { 1000000.40 }
end;
نمایش علمی
var
d: real;
begin
d := 1.5e3; { یعنی 1.5 × 10³ = 1500 }
writeln(d:0:1); { 1500.0 }
d := 2.5e-2; { یعنی 0.025 }
writeln(d:0:3); { 0.025 }
end;
فرمتبندی خروجی — :width:decimals
اعداد اعشاری بدون فرمت، زشت چاپ میشوند (مثل 3.1400000000E+00). راهحل:
var x: real;
begin
x := 3.14159265;
writeln(x:0:2); { 3.14 }
writeln(x:0:4); { 3.1416 }
writeln(x:8:2); { 3.14 — حداقل عرض ۸ کاراکتر }
end;
| فرمت | معنی |
|---|---|
x:0:2 | ۲ رقم اعشار، بدون فاصله اضافه |
x:10:2 | ۲ رقم اعشار در عرض حداقل ۱۰ (راستچین) |
n:6 | برای اعداد صحیح: عرض حداقل ۶ |
تقسیم / همیشه اعشاری است!
در پاسکال عملگر
/ همیشه نتیجه real میدهد، حتی وقتی هر دو طرف integer باشند:writeln(10 / 2); { 5.0 — نه 5! }
writeln(10 / 4); { 2.5 }
writeln(10 div 4); { 2 — این تقسیم صحیح است }
خطای گرد کردن
var x: real;
begin
x := 0.1 + 0.2;
writeln(x:0:20); { 0.30000000000000004441! }
end;
کامپیوترها اعداد اعشاری را تقریبی ذخیره میکنند — این خطای ذاتی اعشار ممیز شناور است. برای پول و محاسبات حساس، با integer (مثلاً ریال بهجای تومان اعشاری) کار کنید.
خلاصه
realبرای اعداد اعشاری (دقت ۱۵ رقم)- همیشه با
:0:2فرمت کنید /نتیجه real میدهد،divصحیح- مراقب خطای گرد کردن ذاتی اعشار باشید
این مبحث بخشی از دوره آموزش کامل پاسکال است.