Trợ giúp:Tính toán
Bách khoa toàn thư mở Wikipedia
Trong Wikipedia và các dự án của Wikimedia, có thể thực hiện một số phép tính đơn giản sử dụng mã
{{#tên hàm: biến 1 | biến 2 | biến 3...}}
Hiện tại các tên hàm sau hoạt động: expr
, if
, ifeq
, ifexpr
, ifexist
, switch
và . Các phép tính được thực hiện bởi máy phục vụ của Wikimedia.rand
Cảnh báo: Phần mở rộng này đang chỉ được thử thôi. [1] Người phát triển phần mềm mà bật lên tính năng này có thể tắt nó bất cứ lúc nào, cho nên bạn cần phải theo dõi các trang và tiêu bản mà sử dụng cú pháp này hễ trường hợp nó bị tắt, để các trang không bị bể.
Mục lục |
[sửa] expr
Hàm expr
tính các biểu thức toán học. Các phép tính (theo thứ tự tính) là:
- *
- Phép nhân
- / hay div
- Phép chia
- +
- Phép cộng
- -
- Phép trừ (hay biểu diễn số âm)
- mod
- Phép tính môđun, cho biết số dư của phép chia
- round
- Làm tròn thành số thập phân có phần thập phân được quy định bởi biến
- =
- Đẳng thức
- <> hay !=
- Bất đẳng thức
- <
- Nhỏ hơn
- >
- Lớn hơn
- <=
- Nhỏ hơn hoặc bằng
- >=
- Lớn hơn hoặc bằng
- and
- Phép tính lô gíc và
- or
- Phép tính lô gíc hoặc
- not
- Phép tính lô gíc không
- ( )
- Nhóm các phép tính
Trong phép tính lô gíc, 0 là sai, 1 là đúng.
Ví dụ:
{{#expr: (100 - 32) / 9 * 5 round 0}}
cho:
- 38
phép tính này cho biết 100°F tương đương với bao nhiêu °C, làm tròn đến số nguyên.
[sửa] if
Hàm if
tạo cấu trúc nếu – thì – nếu không thì. Mã là:
{{#if: <điều kiện> | <chuỗi cho ra khi điều kiện đúng> | <chuỗi cho ra khi điều kiện sai> }}
Nếu điều kiện là chuỗi rỗng (bỏ qua dấu trắng ở trước hoặc sau), thì nó được coi là sai, và lệnh nằm ở lệnh khi điều kiện sai được thực hiện. Nếu không, lệnh khi điều kiện đúng được thực hiện. Nếu bỏ qua lệnh khi điều kiện sai, kết quả không hiện ra gì khi điều kiện sai.
Ví dụ:
- {{#if: 1 = 2|yes|no}}
cho:
- yes
[sửa] ifeq
ifeq
so sánh hai chuỗi, và cho ra một chuỗi tùy thuộc kết quả so sánh. Mã là:
{{#ifeq: <chuỗi thứ nhất> | <chuỗi thứ hai để so với chuỗi thứ nhất> | <chuỗi cho ra khi chuỗi bằng nhau> | <chuỗi cho ra khi chuỗi khác nhau> }}
Ví dụ:
- {{ #ifeq: +07 | 007 | 1 | 0 }} cho 1
- {{ #ifeq:"+07"|"007"| 1 | 0 }} cho 0
[sửa] ifexist
{{#ifexist:Foo|Bar|RFC 3092}}
cho ra RFC 3092 tại vì Foo không tồn tại.{{#ifexist:Trang Chính|Phải|Không}}
cho ra Phải tại vì Trang Chính tồn tại.{{#ifexist:m:ParserFunctions|Phải|Không}}
cho ra Không tuy m:ParserFunctions tồn tại, tại vì hàm này không hoạt động qua đường liên wiki.
[sửa] ifexpr
Mã ifexpr khi bạn muốn có điều kiện là 0 tương ứng với sai và 1 tương ứng với đúng; thay vì dùng điều kiện chuỗi rỗng tương ứng với sai và không rỗng tương ứng với #if như trên
{{ #ifexpr: <biểu thức> | <chuỗi cho ra khi điều kiện đúng> | <else chuỗi cho ra khi điều kiện sai> }}
Ví dụ:
{{#ifexpr: 3 > 1 | 3 > 1 | 3 ≤ 1 }}
cho ra
- 3 > 1
[sửa] switch
{{ #switch: <giá trị so sánh> | <giá trị¹>=<kết quả¹> | <giá trị²>=<kết quả²> | ... | <giá trịn>=<kết quản> | <kết quả mặc định> }}
"Fall-through":
{{ #switch: <giá trị so sánh> | <giá trị¹> | <giá trị²> | <giá trị³>=<kết quả³> | ... | <giá trịn>=<kết quản> | <kết quả mặc định> }}
Nếu kết quả mặc định có dấu =
thì phải bỏ #default:
đằng trước kết quả đó.
Ví dụ:
- {{ #switch: +07 | 7 = Yes | 007 = Bond | No }} cho Yes
- {{ #switch:"+07"|"7"= Yes |"007"= Bond | No }} cho No
[sửa] time
Hàm #time
để định dạng ngày tháng. Cú pháp hoặc:
{{#time: định dạng }}
hoặc:
{{#time: định dạng | giờ }}
Cú pháp | Miêu tả | Thí dụ |
---|---|---|
d | Số ngày trong tháng, có số 0 đằng trước nếu cần. | 04 |
D | Từ viết tắt của ngày trong tuần, ít có dịch. | Mon |
j | Số ngày trong tháng, không có số 0 đằng trước. | 3 |
l | Tên đầy đủ của ngày trong tuần, ít có dịch. | Monday |
F | Tên tháng đầy đủ, thường được dịch. | January |
m | Số tháng, có số 0 đằng trước nếu cần. | 01 đến 12 |
M | Từ viết tắt của tháng, thường được dịch. | Jan |
n | Số tháng, không có số 0 đằng trước. | 1 đến 12 |
Y | Năm có 4 chữ số. | 2006 |
y | Năm có 2 chữ số. | 06 |
H | Giờ trong ngày, có số 0 đằng trước nếu cần. | 00 đến 23 |
i | Phút, có số 0 đằng trước nếu cần. | 00 đến 59 |
s | Giây, có số 0 đằng trước nếu cần. | 00 đến 59 |
Các mã mở rộng không có trong cú pháp PHP:
Cú pháp | Miêu tả |
---|---|
xn | Cho ra số đằng sau là chữ số Ả Rập trong bộ mã ASCII, chẳng hạn trong tiếng Hindi, {{#time: H, xnH }} cho ra ०६, 06 . |
xr | Cho ra số đằng sau là chữ số Latinh. |
xg | Cho ra cách sở hữu của tên tháng trong những ngôn ngữ phân biệt cách sở hữu với cách danh sách. |
xx | Chữ "x" như vậy. |
[sửa] Thí dụ
{{#time:j F Y|-14 days}}
cho ra9 tháng 12 2006
(14 ngày trước đây).{{#time:H:i|+6 hours}}
cho ra18:01
(6 giờ trễ đối với UTC)
[sửa] rel2abs
{{ #rel2abs: lối }} {{ #rel2abs: lối | lối gốc }}
[sửa] rand
Lưu ý: Hàm này đã bị tắt và không còn hoạt động.
Hàm rand
cho ra một số ngẫu nhiên đều trong dải được quy định bởi biến.
{{#rand: <giới hạn dưới> | <giới hạn trên> }}
[sửa] Sử dụng kết hợp
Các hàm có thể được sử dụng kết hợp với nhau trong mã. Cách dùng này hữu ích khi chuỗi cho vào các hàm là kết quả tính toán bởi hàm khác.
Ví dụ mã sau không cho ra kết quả mong muốn:
{{#ifexpr: (1+9)=10|1+9 bằng 10|1+9 không bằng 10}}
do "(1+9)=10", trong điều kiện, được hiểu là một chuỗi chứ không được tự động tính ra kết quả đúng
. Thay vào đó chúng ta cần dùng mã kết hợp:
{{#ifexpr: {{#expr: (1+9)=10}}|1+9 bằng 10|1+9 không bằng 10}}
Các chuỗi cũng có thể là kết quả của các tiêu bản hay biến hệ thống. Ví dụ:
{{#ifexpr: {{#expr: {{THÁNGNÀY}} = 4}} |Tháng này là tháng 4|Tháng này không phải là tháng 4}}
[sửa] Tính một lần
Chúng ta có thể cho hàm tính một lần và cho ra kết quả lưu trong mã nguồn của bài viết bằng cách dùng "subst" giống như với tiêu bản.
Ví dụ mã:
{{subst:#expr: 2+2}}
Cho ra:
- 4
Và kết quả 4 cũng là kết quả lưu trong mã nguồn của trang này.
[sửa] Dấu thập phân
Lưu ý là phần mở rộng này hiện chỉ có dấu thập phân kiểu Mỹ: dấu phẩy dùng để phân tách phần ngàn, còn dấu chấm dùng để phân tách phần thập phân, tức là {{#expr: 22 / 7}}
sẽ trở thành 3.14285714286
, chứ không 3,14285714286
. Có thể sử dụng {{prettynum}} để đổi dấu chấm thành dấu phẩy.
[sửa] Xem thêm
- Trợ giúp:Toán học
- Tài liệu về ParserFunctions tại Meta