Trợ giúp:Tính toán

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

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ênhàm: tham số 1 | tham số 2 | tham số 3 ... }}

Hiện tại các hàm sau đang hoạt động: #expr, #if, #ifeq, #iferror, #ifexist, #ifexpr, #rand, #rel2abs, #switch, #titleparts. Các phép tính được thực hiện bởi máy chủ (server) chạy Wikimedia.

Cảnh báo: Phần mở rộng này chỉ đang được thử nghiệm [1]. Người phát triển phần mềm đã bật tính năng này lên 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 có sử dụng cú pháp này phòng trường hợp nó bị tắt, để các trang không bị đổ vỡ. Xin hãy xếp các tiêu bản dùng những hàm này vào Thể loại:Tiêu bản dùng hàm cú pháp.

#expr[sửa | sửa mã nguồn]

Loại Toán tử
Nhóm (các dấu ngoặc) ( )
Số 1234.5 2.4E5 e (2.718) pi (3.142)
Logic or
and
= != <> > < <= >=
Làm tròn round
Toán tử hai ngôi + - mod
* / div
^
Toán tử một ngôi not ceil trunc floor abs ln sin cos tan acos asin atan
e + -

Hàm này định giá trị của một biểu thức toán học và trả về giá trị đã tính được.

{{#expr: biểu thức }}

Các toán tử hợp lệ được liệt kê ở bên phải theo trật tự quyền ưu tiên. Xem thông tin chi tiết về hàm số của mỗi toán tử tại [2]. Độ chính xác và định dạng của kết quả trả về sẽ thay đổi tùy thuộc vào hệ điều hành của máy chủ (server) chạy wiki, và tùy thuộc vào định dạng số trên ngôn ngữ trang.

Khi định giá sử dụng đại số boolean, 0 tương ứng với false còn bất kì giá trị khác 0 nào khác, cả âm và dương đều tương ứng với true:

{{#expr: 1 and -1 }}1
{{#expr: 1 and 0 }}0

Một biểu thức nhập rỗng sẽ trả về một chuỗi rỗng. Biểu thức không hợp lệ sẽ trả về một trong những thông báo lỗi, có thể bắt các lỗi này bằng cách dùng hàm #iferror:

{{#expr: }}
{{#expr: 1+ }}Lỗi biểu thức: Thiếu toán hạng trong +
{{#expr: 1 foo 2 }}Lỗi biểu thức: Từ “foo” không rõ ràng

Xem bugzilla 6356.


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.


Các toán tử[sửa | sửa mã nguồn]

Toán tử Phép tính Ví dụ
không không
"{{#expr:123456789012345}}" "1.2345678901234E+14" [3]
"{{#expr:1.23456789012345}}" "1.2345678901235" [4]
"{{#expr:.000001}}" "1.0E-6" [5]
"{{#expr:.00000123456789012345}}" "1.2345678901234E-6" [6]
"{{#expr:.123e4}}" "1230" [7]
"{{#expr:123E-2}}" "1.23" [8]
"{{#expr:e}}" "2.718281828459" [9]
"{{#expr:pi}}" "3.1415926535898" [10]

Sai:

"{{#expr:e4}}" "Lỗi biểu thức: Dư số" [11]
exp
"{{#expr:exp1.2}}" "3.3201169227365" [12]

So sánh:

"{{#expr:e^1.2}}" "3.3201169227365" [13]
ln Logarit tự nhiên
"{{#expr:ln2}}" "0.69314718055995" [14]

Từ đây có thể tính log(2):

"{{#expr:ln2/ln10}}" "0.30102999566398" [15]
abs
"{{#expr:abs-1.2}}" "1.2" [16]
trunc
"{{#expr:trunc1.2}}" "1" [17]
"{{#expr:trunc-1.2}}" "-1" [18]
floor
"{{#expr:floor1.2}}" "1" [19]
"{{#expr:floor-1.2}}" "-2" [20]
ceil
"{{#expr:ceil1.2}}" "2" [21]
"{{#expr:ceil-1.2}}" "-1" [22]
sin
"{{#expr:sin.1}}" "0.099833416646828" [23]

Góc tính bằng độ, ví dụ 30°:

"{{#expr:sin(30*pi/180)}}" "0.5" [24]
cos
"{{#expr:cos.1}}" "0.99500416527803" [25]
tan
"{{#expr:tan.1}}" "0.10033467208545" [26]
asin
"{{#expr:asin.1}}" "0.10016742116156" [27]
acos
"{{#expr:acos.1}}" "1.4706289056333" [28]
atan
"{{#expr:atan.1}}" "0.099668652491162" [29]
+ Dấu +(dương), phép toán một ngôi
"{{#expr:+12}}" "12" [30]
"{{#expr:++12}}" "12" [31]
"{{#expr:+-12}}" "-12" [32]
- Dấu - (âm), phép toán một ngôi
"{{#expr:-12}}" "-12" [33]
"{{#expr:-+12}}" "-12" [34]
"{{#expr:--12}}" "12" [35]
not phép toán một ngôi NOT, phép logic NOT (phép phủ định)
"{{#expr:not 0}}" "1" [36]
"{{#expr:not 1}}" "0" [37]
"{{#expr:not 2}}" "0" [38]
^ Lũy thừa
"{{#expr:2^7}}" "128" [39]
"{{#expr:2^-7}}" "0.0078125" [40]
"{{#expr:(-2)^7}}" "-128" [41]
"{{#expr:(-2)^8}}" "256" [42]
"{{#expr:2^1.2}}" "2.2973967099941" [43]
"{{#expr:2^.5}}" "1.4142135623731" [44]
"{{#expr:(-2)^1.2}}" "NAN" [45]
"{{#expr:(-2)^.5}}" "NAN" [46]
* Phép nhân
"{{#expr:30*7}}" "210" [47]
"{{#expr:30*-7}}" "-210" [48]
/ Phép chia div
"{{#expr:30/7}}" "4.2857142857143" [49]
"{{#expr:30/-7}}" "-4.2857142857143" [50]
div Phép chia, giống như /,
không phải phép chia số nguyên
"{{#expr:30 div 7}}" "4.2857142857143" [51] (đúng ra phải là 4)
mod "Modulo",phần dư của phép chia sau khi làm tròn (truncate) cả hai toán hạng thành số nguyên (toán tử PHP %).

Cảnh báo rằng, divmod khác với các ngôn ngữ lập trình. Lỗi này đã được vá (nhưng vẫn nên cẩn trọng), xem bugzilla:6068.
"{{#expr:30 mod 7}}" "2" [52]
"{{#expr:30 mod -7}}" "2" [53]
"{{#expr:-30 mod 7}}" "-2" [54]
"{{#expr:-30 mod -7}}" "-2" [55]
"{{#expr:-8 mod -3}}" "-2" [56]
"{{#expr:-8 mod 2.9}}" "0" [57] (đúng ra phải là 2.6)
"{{#expr:-8 mod 3.2}}" "-2" [58] (đúng ra phải là 1.6)
"{{#expr:8.9 mod 3}}" "2" [59] (đúng ra phải là 2.9)
+ Phép cộng
"{{#expr:30 + 7}}" "37" [60]
- Phép trừ
"{{#expr:30 - 7}}" "23" [61]
round Làm tròn số ở bên trái theo số mũ của 1/10 được cho ở bên phải (hàm PHP round)
"{{#expr:4.2857 round 3}}" "4.286" [62]
"{{#expr:4.2857 round 0}}" "4" [63]
"{{#expr:42857 round -2}}" "42900" [64]
"{{#expr:4.5 round 0}}" "5" [65]
"{{#expr:-4.5 round 0}}" "-5" [66]
= Bằng (số và logic)
"{{#expr:3=03.0}}" "1" [67]
<> Khác (!=)
"{{#expr:3<>03.0}}" "0" [68]
"{{#expr:3<>4}}" "1" [69]
 != Khác, giống như <>, phép logic xor
"{{#expr:3!=03.0}}" "0" [70]
"{{#expr:3!=4}}" "1" [71]
< Bé hơn
"{{#expr:3<2}}" "0" [72]
"{{#expr:3<3}}" "0" [73]
"{{#expr:3<4}}" "1" [74]
> Lớn hơn
"{{#expr:3>2}}" "1" [75]
"{{#expr:3>3}}" "0" [76]
"{{#expr:3>4}}" "0" [77]
<= Bé hơn hoặc bằng
"{{#expr:3<=2}}" "0" [78]
"{{#expr:3<=3}}" "1" [79]
"{{#expr:3<=4}}" "1" [80]
>= Lớn hơn hoặc bằng
"{{#expr:3>=2}}" "1" [81]
"{{#expr:3>=3}}" "1" [82]
"{{#expr:3>=4}}" "0" [83]
and Phép logic VÀ
"{{#expr:3 and 4}}" "1" [84]
"{{#expr:0 and 3}}" "0" [85]
"{{#expr:-3 and 0}}" "0" [86]
"{{#expr:0 and 0}}" "0" [87]
or Phép logic HOẶC
"{{#expr:3 or 4}}" "1" [88]
"{{#expr:0 or 3}}" "1" [89]
"{{#expr:-3 or 0}}" "1" [90]
"{{#expr:0 or 0}}" "0" [91]

#if[sửa | sửa mã nguồn]

{{#if: chuỗi kiểm tra | giá trị nếu đúng | giá trị nếu sai }}

Hàm này kiểm tra tham số thứ nhất có tồn tại (không rỗng) hay không. Hàm sẽ cho kết quả sai nếu như chuỗi kiểm tra rỗng hoặc chỉ chứa các kí tự trắng (như phím cách (khi nhấn phím SpaceBar), kí tự xuống dòng (khi nhấn phim Enter, v.v.).

{{#if: | yes | no}}no
{{#if: string | yes | no}}yes
{{#if:      | yes | no}}no
{{#if:


| yes | no}}
no

Chuỗi kiểm tra được hiểu là văn bản (chuỗi kí tự) thuần túy, vì thế biểu thức toán học không được tính:

{{#if: 1==2 | yes | no }}yes
{{#if: 0 | yes | no }}yes

Một trong hai hoặc cả hai giá trị trả về có thể được bỏ qua:

{{#if: foo | yes }}yes
{{#if: | yes }}
{{#if: foo | | no}}

#ifeq[sửa | sửa mã nguồn]

Hàm này so sánh hai chuỗi và xác định xem chúng có đồng nhất hay không.

{{#ifeq: chuỗi 1 | chuỗi 2 | giá trị nếu đồng nhất | giá trị nếu khác nhau }}

Nếu cả hai chuỗi là các giá trị số hợp lệ, chúng sẽ được so sánh về số (toán học):

{{#ifeq: 01 | 1 | yes | no}}yes
{{#ifeq: 0 | -0 | yes | no}}yes

Còn nếu như so sánh văn bản, thì việc so sánh này có tính tới sự khác nhau giữa chữ viết hoa, viết thường:

{{#ifeq: foo | bar | yes | no}}no
{{#ifeq: foo | Foo | yes | no}}no
{{#ifeq: "01" | "1" | yes | no}}no

#iferror[sửa | sửa mã nguồn]

{{#iferror: <biểu thức> | lỗi | thành công }} cho ra lỗi nếu biểu thức gặp lỗi, tức là biểu thức bao gồm <strong class="error">, do #expr, #ifexpr, #time, #rel2abs, v.v. Hàm này có ích trong việc bắt gặp chuỗi sai được cho vào. Chẳng hạn:

  • {{#iferror:{{#expr:1+1}}|bad input|valid expression}} cho ra valid expression
  • {{#iferror:{{#expr:1+Z}}|bad input|valid expression}} cho ra bad input

Không bắt buộc phải định hai tham số cuối cùng. Nếu tham số thành công không được định, kết quả của biểu thức được cho ra khi thành công. Nếu tham số lỗi cũng không được định, và nếu mã này gặp lỗi, thông báo lỗi không được cho ra, còn nếu không gặp lỗi, kết quả của biểu thức được cho ra.

  • {{#iferror:{{#expr:1+1}}|bad input}} cho ra 2
  • {{#iferror:{{#expr:1+Z}}|bad input}} cho ra bad input
  • {{#iferror:{{#expr:1+1}}}} cho ra 2
  • {{#iferror:{{#expr:1+Z}}}} cho ra

Nên:

  • {{#iferror:mã nguồn|mã dự phòng}} có nghĩa "cho ra kết quả của mã nguồn nếu đúng, hay không thì cho ra kết quả của mã dự phòng".
  • {{#iferror:mã nguồn}} có nghĩa "cho ra kết quả của mã nguồn nếu đúng".

#ifexist[sửa | sửa mã nguồn]

Hàm này nhận vào một chuỗi, coi nó như một tiêu đề trang, và trả lại một trong hai giá trị tùy thuộc vào trang đó có tồn tại trên wiki nội bộ hay là không.

{{#ifexist: tiêu đề trang | giá trị nếu tồn tại | giá trị nếu không tồn tại }}

Hàm sẽ định giá trị là true nếu như trang đó tồn tại, dù chúng có nội dung, là trang trắng rõ ràng (chứa dữ liệu meta như các đường liên kết thể loại hoặc Trợ giúp:Magic words, nhưng nội dung không nhìn thấy được), hoặc là trống như trang đổi hướng. Chỉ đối với những trang liên kết đỏ hàm mới trả về giá trị false, bao gồm cả những trang đã từng tồn tại những hiện tại đã bị xóa.

{{#ifexist: Trợ giúp:Tính toán | tồn tại | không tồn tại }}tồn tại
{{#ifexist: XXXTrợ giúp:Tính toánXXX | tồn tại | không tồn tại }}không tồn tại

Hàm sẽ định giá trị true cho các tin nhắn hệ thống được tùy chỉnh hóa, và cho các trang đặc biệt được xác định bằng phần mềm.

{{#ifexist: Đặc biệt:Danh sách theo dõi | tồn tại | không tồn tại }}tồn tại
{{#ifexist: Đặc biệt:Kiểm tra người dùng | tồn tại | không tồn tại }}tồn tại (vì [http://www.mediawiki.org/wiki/Extension:Checkuser đã được cài đặt vào wiki)
{{#ifexist: MediaWiki:Copyright | tồn tại | không tồn tại }}tồn tại (vì MediaWiki:Copyright đã được tùy chỉnh hóa)

#ifexist: được coi là một "hàm phân tích đắt giá", chỉ một số lượng giới hạn hàm này được chèn vào một trang bất kì nào đó (bao gồm cả những hàm bên trong các bản mẫu đã được chèn vào). Khi vượt quá giới hạn này, trang sẽ được xếp vào thể loại Thể loại:Trang có quá nhiều lời gọi hàm cú pháp cần mức độ xử lý cao, và bất cứ hàm #ifexist: sau đó đều sẽ tự động trả về giá trị false, dù trang mục tiêu có tồn tại hay không.

Nếu một trang kiểm tra mục tiêu sử dụng #ifexist:, thì trang đó sẽ xuất hiện trong danh sách Đặc biệt:Liên kết đến đây dành cho trang mục tiêu. Vì vậy nếu mã {{#ifexist:Foo}} được chèn trực tiếp vào trang (Trợ giúp:Tính toán), Đặc biệt:Liên kết đến đây/Foo sẽ liệt kê Trợ giúp:Tính toán.

Trên những wiki sử dụng kho phương tiện chia sẻ, #ifexist: có thể được dùng để kiểm tra một tập tin đã được tải lên kho nhưng chưa lên wiki đó:{{#ifexist: Tập tin:Example.png | tồn tại | không tồn tại }}không tồn tại

{{#ifexist: Image:Example.png | tồn tại | không tồn tại }}không tồn tại
{{#ifexist: Phương tiện:Example.png | tồn tại | không tồn tại }}tồn tại

Nếu một trang miêu tả nôi bộ được tạo ra dành cho một tập tin, thì kết quả sẽ là tồn tại cho tất cả các mục kể trên.

#ifexpr[sửa | sửa mã nguồn]

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> | <chuỗi cho ra khi điều kiện sai> }}

Ví dụ:

{{#ifexpr: 3 > 1 | 3 > 1 | 3 ≤ 1 }}

cho ra

3 > 1

#rand[sửa | sửa mã nguồn]

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> }}

#rel2abs[sửa | sửa mã nguồn]

{{ #rel2abs: lối }}
{{ #rel2abs: lối | lối gốc }}

#switch[sửa | sửa mã nguồn]

Hàm này so sánh một giá trị đầu vào với nhiều giá trị kiểm tra khác nhau, và trả về chuỗi kèm theo giá trị kiểm tra tương ứng nếu như một giá trị trùng khớp được tìm thấy.

{{#switch: chuỗi được so sánh
 | chuỗi kiểm tra1 = kết quả1
 | chuỗi kiểm tra2 = kết quả2
 | chuỗi kiểm tra3 = kết quả3
 | ...
 | chuỗi kiểm tran = kết quản
 | kết quả mặc định
}}

kết quả mặc định được trả về nếu như không có chuỗi kiểm tra nào trùng khớp với chuỗi được so sánh:

{{#switch: test | foo = Foo | baz = Baz | Bar }}Bar

Trong cú pháp này, kết quả mặc định phải là tham số sau cùng và không chứa dấu bằng. Ngoài ra, kết quả mặc định có thể được khai báo một cách rõ ràng bằng một chuỗi kiểm tra là "#default".

{{#switch: chuỗi được so sánh
 | chuỗi kiểm tra1 = kết quả1
 | chuỗi kiểm tra2 = kết quả2
 | chuỗi kiểm tra3 = kết quả3
 | ...
 | chuỗi kiểm tran = kết quản
 | #default = kết quả mặc định
}}

Những kết quả mặc định đã khai báo theo cách này có thể được đặt vào bất cứ đâu trong hàm.

{{#switch: test | foo = Foo | #default = Bar | baz = Baz }}Bar
{{#switch: test | foo = Foo | baz = Baz }}

Các chuỗi kiểm tra có thể bị lướt qua (fall through), khi chúng ' trả về cùng một chuỗi kết quả. Điều này làm giảm bớt số lầṇ lặp.

{{#switch: chuỗi được so sánh
 | chuỗi kiểm tra1 = kết quả1
 | chuỗi kiểm tra2 
 | chuỗi kiểm tra3 
 | chuỗi kiểm tra4 = kết quả2
 | chuỗi kiểm tra5 = kết quả3
 | chuỗi kiểm tra6 
 | chuỗi kiểm tra7 = kết quả4
 | #default = kết quả mặc định
}}

Ở đây tất cả các chuỗi kiểm tra 2, 3, và 4 đều trả về kết quả2; hai chuỗi kiểm tra 6, 7 đều trả về kết quả4

Cũng như với hàm #ifeq, việc so sánh số được thực hiện nếu như chuỗi được so sánh và chuỗi kiểm tra đều là các số, và nếu như là văn bản thì so sánh tính đến sự khác biệt chữ hoa và chữ thường. Chuỗi kiểm tra có thể rỗng:

{{#switch: | = Nothing | foo = Foo | Something }}Nothing

Một khi đã tìm thấy một sự trùng khớp, những chuỗi kiểm tra sau nó bị lờ đi:

{{#switch: b | f = Foo | b = Bar | b = Baz | }}Bar

Cảnh báo: Các "chuỗi kiểm tra" không được chứa các dấu bằng. Để làm việc này, chúng ta sẽ tạo một bản mẫu ở {{=}}, trong bản mẫu này chỉ có duy nhất một dấu =. Sau đó, ta dùng bản mẫu vừa tạo như sau:

{{#switch: 1=2
 | 1=2 = raw
 | 1<nowiki>=</nowiki>2 = nowiki
 | 1&#61;2 = html
 | 1{{=}}2 = template
 | foo }}template

Chú ý: Kiểm tra Template:NBA color] để biết ví dụ thực tế ứng dụng hàm này. Một ví dụ phức tạp có thể tìm thấy ở Template:Extension.

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

#time[sửa | sửa mã nguồn]

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.

Thí dụ[sửa | sửa mã nguồn]

  • {{#time:j F Y|-14 days}} cho ra 10 tháng 4 2014 (14 ngày trước đây).
  • {{#time:H:i|+6 hours}} cho ra 01:35 (6 giờ trễ đối với UTC)

#titleparts[sửa | sửa mã nguồn]

{{#titleparts:<tên trang>|<số đoạn>}} cho ra số đoạn đoạn của tên trang, chia nhau bằng dấu gạch chéo, bắt đầu từ cấp cao nhất:

  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|0}} cho ra Wikipedia:Bài viết chọn lọc/2006/11 (tên trang đầy đủ)
  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|1}} cho ra Wikipedia:Bài viết chọn lọc
  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|2}} cho ra Wikipedia:Bài viết chọn lọc/2006
  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|3}} cho ra Wikipedia:Bài viết chọn lọc/2006/11
  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|4}} cho ra Wikipedia:Bài viết chọn lọc/2006/11

{{#titleparts:<tên trang>|<số đoạn>|<số của đoạn đầu>}} cho ra số đoạn đoạn của tên trang, chia nhau bằng dấu gạch chéo, bắt đầu từ đoạn thứ số của đoạn đầu:

  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|2|2}} cho ra 2006/11 (hai đoạn, bắt đầu từ đoạn thứ hai)

Tương tự:

  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|1|2}} cho ra 2006
  • {{#titleparts:Wikipedia:Bài viết chọn lọc/2006/11|1|3}} cho ra 11

Sử dụng kết hợp[sửa | sửa mã nguồn]

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}}

Tính một lần[sửa | sửa mã nguồ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.

Dấu thập phân[sửa | sửa mã nguồ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.

Xem thêm[sửa | sửa mã nguồn]

Torchlight help icon.svg
Bạn còn thắc mắc?
Mời vào: Bàn giúp đỡ

Liên kết ngoài[sửa | sửa mã nguồn]