Tính biểu thức toán API

Tính biểu thức toán an toàn: đơn vị (5 cm to inch), ma trận, thống kê, biến, số lớn hoặc phân số chính xác, kèm kết quả định dạng sẵn và LaTeX.

GETPOSThttps://apibox.io.vn/v1/math-eval
Tiện ích lập trình▶ Dùng thử online

Gửi biểu thức trong expr (GET hoặc POST) hoặc một loạt trong expressions (tối đa 100, dùng chung biến: a = 5 rồi a * 2). Bộ tính là mathjs với tập hàm giới hạn: số học, luỹ thừa và căn, logarit, làm tròn, lượng giác, ước chung / bội chung, giai thừa và tổ hợp, thống kê (mean, median, std, variance, quantile…), ma trận (det, inv, transpose, dot, cross), so sánh và logic, số phức, hằng số và đơn vị có quy đổi (100 km/h to m/s, 5 cm + 2 inch to mm, 10 kg * 9.81 m/s^2 to N). Có thể định nghĩa hàm (f(x) = x^2 + 1) và truyền biến qua scope (số, mảng hoặc chuỗi như "42 km").

number=bignumber tính với 64 chữ số có nghĩa (precision từ 16 đến 256), number=fraction cho phân số chính xác (1/3 + 1/6 → 1/2). Mỗi kết quả gồm chuỗi đã định dạng (digits chữ số có nghĩa, mặc định 15), value dạng JSON, type và mã LaTeX của biểu thức để hiển thị.

An toàn: đã tắt import, createUnit, evaluate, parse, simplify, derivative và các hàm meta khác, mathjs chặn truy cập thuộc tính constructor, biểu thức tối đa 2.000 ký tự, ma trận và dãy tối đa 100.000 phần tử, giai thừa tối đa 100.000, luỹ thừa chính xác tối đa số mũ 10.000; một loạt biểu thức dừng sau 2 giây.

Tham số

TênVị tríKiểuBắt buộcMặc định
exprquery|bodystringkhôngMột biểu thức (tối đa 2.000 ký tự).
expressionsbodyarraykhôngLoạt biểu thức tính theo thứ tự, dùng chung biến (tối đa 100).
scopebodyobjectkhôngBiến: {"price": 120000, "d": "42 km"}.
numberquery|bodystringkhôngnumbernumber (số thực), bignumber hoặc fraction.
precisionquery|bodynumberkhông64Số chữ số có nghĩa ở chế độ bignumber (16–256).
digitsquery|bodynumberkhông15Số chữ số có nghĩa của kết quả định dạng.

Ví dụ

curl "https://apibox.io.vn/v1/math-eval?expr=5%20cm%20%2B%202%20inch%20to%20mm" \
  -H "Authorization: Bearer YOUR_API_KEY"

Kết quả trả về

{
  "expression": "5 cm + 2 inch to mm",
  "result": "100.8 mm",
  "value": {
    "value": 100.8,
    "unit": "mm"
  },
  "type": "Unit",
  "tex": "5~\\mathrm{cm}+2~\\mathrm{inch}\\rightarrow\\mathrm{mm}",
  "number": "number",
  "ms": 6
}

Ứng dụng

  • Cho người dùng nhập công thức tính giá, chiết khấu trong ứng dụng
  • Đổi đơn vị trong chatbot hoặc khi nhập dữ liệu
  • Tính phân số chính xác hoặc kết quả 64 chữ số
  • Hiển thị công thức dạng LaTeX cạnh kết quả

Hỏi đáp

Vì sao 0.1 + 0.2 hiện 0.3?

Kết quả định dạng dùng 15 chữ số có nghĩa; value giữ số thực gốc (0.30000000000000004). Dùng number=bignumber để tính thập phân chính xác.

Biểu thức có chạy được mã độc không?

Không: chỉ có hàm toán học, các hàm meta như import hay evaluate đã bị tắt và không truy cập được thuộc tính JavaScript.

Hỗ trợ những đơn vị nào?

Mọi đơn vị có sẵn của mathjs: độ dài, khối lượng, thời gian, tốc độ, diện tích, thể tích, nhiệt độ, lực, năng lượng, công suất, áp suất, dữ liệu (bit, byte) và tiền tố SI. Không có tiền tệ.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →