Các hàm toán học (cmath)
C++ không có sẵn các hàm toán học (như lũy thừa, căn bậc hai…) trong ngôn ngữ lõi. Thay vào đó, ta dùng thư viện chuẩn <cmath>.
Import thư viện
Phần tiêu đề “Import thư viện”#include <cmath>Các hàm phổ biến
Phần tiêu đề “Các hàm phổ biến”#include <cmath>#include <iostream>
int main() { std::cout << std::pow(2, 10) << std::endl; // 1024 (2^10) std::cout << std::sqrt(16) << std::endl; // 4 (căn bậc hai) std::cout << std::cbrt(27) << std::endl; // 3 (căn bậc ba) std::cout << std::abs(-5) << std::endl; // 5 (giá trị tuyệt đối, số nguyên) std::cout << std::fabs(-5.5) << std::endl; // 5.5 (giá trị tuyệt đối, số thực) std::cout << std::floor(4.7) << std::endl; // 4 (làm tròn xuống) std::cout << std::ceil(4.2) << std::endl; // 5 (làm tròn lên) std::cout << std::round(4.5) << std::endl; // 5 (làm tròn gần nhất)
std::cout << std::log(2.718281828) << std::endl; // ~1 (log tự nhiên - ln) std::cout << std::log10(1000) << std::endl; // 3 (log cơ số 10) std::cout << std::exp(1) << std::endl; // ~2.71828 (e^1)
std::cout << std::sin(0) << std::endl; // 0 std::cout << std::cos(0) << std::endl; // 1 std::cout << std::tan(0) << std::endl; // 0
return 0;}Hằng số toán học
Phần tiêu đề “Hằng số toán học”C++20 bổ sung sẵn các hằng số trong <numbers>, nhưng cách phổ biến trước đó là tự khai báo hoặc dùng M_PI (không chuẩn ISO nhưng được hầu hết trình biên dịch hỗ trợ khi định nghĩa _USE_MATH_DEFINES):
#include <numbers> // C++20#include <iostream>
int main() { std::cout << std::numbers::pi << std::endl; // 3.14159... return 0;}Tổng kết
Phần tiêu đề “Tổng kết”- C++ dùng thư viện
<cmath>cho các hàm toán học như căn bậc hai, logarit, lượng giác… - Không có toán tử lũy thừa
**, phải dùngstd::pow() std::abs()dùng cho số nguyên,std::fabs()dùng cho số thực (float/double)<numbers>(C++20) cung cấp sẵn các hằng số toán học nhưstd::numbers::pi