
- C 標準庫
- C 標準庫
- C++ 標準庫
- C++ 庫 - 首頁
- C++ 庫 - <fstream>
- C++ 庫 - <iomanip>
- C++ 庫 - <ios>
- C++ 庫 - <iosfwd>
- C++ 庫 - <iostream>
- C++ 庫 - <istream>
- C++ 庫 - <ostream>
- C++ 庫 - <sstream>
- C++ 庫 - <streambuf>
- C++ 庫 - <atomic>
- C++ 庫 - <complex>
- C++ 庫 - <exception>
- C++ 庫 - <functional>
- C++ 庫 - <limits>
- C++ 庫 - <locale>
- C++ 庫 - <memory>
- C++ 庫 - <new>
- C++ 庫 - <numeric>
- C++ 庫 - <regex>
- C++ 庫 - <stdexcept>
- C++ 庫 - <string>
- C++ 庫 - <thread>
- C++ 庫 - <tuple>
- C++ 庫 - <typeinfo>
- C++ 庫 - <utility>
- C++ 庫 - <valarray>
- C++ STL 庫
- C++ 庫 - <array>
- C++ 庫 - <bitset>
- C++ 庫 - <deque>
- C++ 庫 - <forward_list>
- C++ 庫 - <list>
- C++ 庫 - <map>
- C++ 庫 - <multimap>
- C++ 庫 - <queue>
- C++ 庫 - <priority_queue>
- C++ 庫 - <set>
- C++ 庫 - <stack>
- C++ 庫 - <unordered_map>
- C++ 庫 - <unordered_set>
- C++ 庫 - <vector>
- C++ 庫 - <algorithm>
- C++ 庫 - <iterator>
- C++ 高階庫
- C++ 庫 - <any>
- C++ 庫 - <barrier>
- C++ 庫 - <bit>
- C++ 庫 - <chrono>
- C++ 庫 - <cinttypes>
- C++ 庫 - <clocale>
- C++ 庫 - <condition_variable>
- C++ 庫 - <coroutine>
- C++ 庫 - <cstdlib>
- C++ 庫 - <cstring>
- C++ 庫 - <cuchar>
- C++ 庫 - <charconv>
- C++ 庫 - <cfenv>
- C++ 庫 - <cmath>
- C++ 庫 - <ccomplex>
- C++ 庫 - <expected>
- C++ 庫 - <format>
- C++ 庫 - <future>
- C++ 庫 - <flat_set>
- C++ 庫 - <flat_map>
- C++ 庫 - <filesystem>
- C++ 庫 - <generator>
- C++ 庫 - <initializer_list>
- C++ 庫 - <latch>
- C++ 庫 - <memory_resource>
- C++ 庫 - <mutex>
- C++ 庫 - <mdspan>
- C++ 庫 - <optional>
- C++ 庫 - <print>
- C++ 庫 - <ratio>
- C++ 庫 - <scoped_allocator>
- C++ 庫 - <semaphore>
- C++ 庫 - <source_location>
- C++ 庫 - <span>
- C++ 庫 - <spanstream>
- C++ 庫 - <stacktrace>
- C++ 庫 - <stop_token>
- C++ 庫 - <syncstream>
- C++ 庫 - <system_error>
- C++ 庫 - <string_view>
- C++ 庫 - <stdatomic>
- C++ 庫 - <variant>
- C++ STL 庫速查表
- C++ STL - 速查表
- C++ 程式設計資源
- C++ 程式設計教程
- C++ 有用資源
- C++ 討論
C++ 庫 - <cmath>
C++ 中的<cmath> 標頭檔案提供了一組預定義函式,用於計算常見的數學運算和轉換。
它提供標準數學函式,例如三角函式、指數函式、對數函式和冪函式,以及可應用於標量和向量量的其他有用函式。
包含 <cmath> 標頭檔案
要在 C++ 程式中包含 <cmath> 標頭檔案,可以使用以下語法。
#include <cmath>
<cmath> 標頭檔案的函式
以下是 <cmath> 標頭檔案中所有函式的列表。
三角函式
這些函式處理標準三角計算,如正弦、餘弦和正切。
序號 | 函式及說明 |
---|---|
1 | sin(x)
此函式返回角度為 x 弧度的餘弦。 |
2 | cos(x)
此函式返回角度為 x 弧度的正弦。 |
3 | tan(x)
此函式返回角度為 x 弧度的正切。 |
4 | acos(x)
此函式返回 x 的反餘弦的主值,以弧度表示。 |
5 | asin(x)
此函式返回 x 的反正弦的主值,以弧度表示。 |
6 | atan2(x)
此函式返回 x 的反正切的主值,以弧度表示。 |
7 | atan2(y,x)
此函式返回 y/x 的反正切的主值,以弧度表示。 |
角度的正弦
在下面的示例中,我們將使用 sin() 計算以弧度表示的角度的正弦。
#include <iostream> #include <cmath> int main() { double angle = 1.0; // Angle in radians double result = sin(angle); std::cout << "The sine of " << angle << " radians is " << result << std::endl; return 0; }
輸出
The sine of 1 radians is 0.841471
雙曲函式
這些函式是三角函式的雙曲對應物。
序號 | 函式及說明 |
---|---|
1 | cosh(x)
此函式返回 x 的雙曲餘弦。 |
2 | sinh(x)
此函式返回 x 的雙曲正弦。 |
3 | tanh(x)
此函式返回 x 的雙曲正切。 |
4 | acosh(x)
此函式返回 x 的非負面積雙曲餘弦。 |
5 | asinh(x)
此函式返回 x 的雙曲餘弦。 |
6 | atanh(x)
此函式返回 x 的面積雙曲正切。 |
計算雙曲正弦
在下面的示例中,我們將使用 sinh() 計算數字的雙曲正弦。
#include <iostream> #include <cmath> int main() { double value = 1.0; double result = sinh(value); std::cout << "The hyperbolic sine of " << value << " is " << result << std::endl; return 0; }
輸出
The hyperbolic sine of 1 is 1.1752
指數和對數函式
這些函式處理指數和對數計算。
序號 | 函式及說明 |
---|---|
1 | exp(x)
此函式返回 x 的以 e 為底的指數函式,即 e 的 x 次冪:e^x。 |
2 | frexp(x)
此函式將浮點數 x 分解為其二進位制有效數和 2 的整數指數。 |
3 | log(x)
此函式返回 x 的自然對數。 |
4 | log10(x)
此函式返回 x 的常用(以 10 為底)對數。 |
5 | modf(x)
將 x 分解為整數部分和小數部分。 |
6 | exp2(x)
此函式返回 x 的以 2 為底的指數函式,即 2 的 x 次冪:2^x。 |
7 | ilogb(x)
此函式返回 |x| 的對數的整數部分,使用 RADIX 作為對數的底。 |
8 | log1p(x)
此函式返回 1 加 x 的自然對數。 |
計算指數值
在下面的示例中,我們將使用 exp() 計算 e^2。計算 e(尤拉數)的給定輸入的冪的指數值。
#include <iostream> #include <cmath> int main() { double exponent = 2.0; double result = exp(exponent); std::cout << "The value of e^" << exponent << " is " << result << std::endl; return 0; }
輸出
The value of e^2 is 7.38906
冪函式
這些函式處理與冪和根相關的計算。
序號 | 函式及說明 |
---|---|
1 | pow(x,y)
此函式返回底數的指數次冪。 |
2 | sqrt(x)
此函式返回 x 的平方根。 |
3 | cbrt(x)
此函式返回 x 的立方根。 |
4 | hypot(x,y)
此函式返回直角三角形的斜邊,其直角邊為 x 和 y。 |
冪函式示例
在下面的示例中,我們將使用 pow() 函式返回底數的指數次冪的結果。
#include <iostream> #include <cmath> int main() { double base = 2.0, exponent = 3.0; double result = pow(base, exponent); std::cout << base << " raised to the power of " << exponent << " is " << result << std::endl; return 0; }
輸出
2 raised to the power of 3 is 8
誤差和伽馬函式
cmath 庫包含誤差函式 (erf) 和伽馬函式 (tgamma) 等特殊函式,這些函式用於統計、物理等各個領域。
序號 | 函式及說明 |
---|---|
1 | erf(x)
此函式返回 x 的誤差函式值。 |
2 | erfc(x)
此函式返回互補誤差函式。 |
3 | tgamma(x)
此函式返回 x 的伽馬函式。 |
4 | lgamma(x)
此函式返回 x 的伽馬函式的絕對值的自然對數。 |
舍入和餘數函式
這些函式處理舍入和餘數計算。
序號 | 函式及說明 |
---|---|
1 | ceil(x)
向上舍入 x,返回不小於 x 的最小整數值。 |
2 | floor(x)
向下舍入 x,返回不大於 x 的最大整數值。 |
3 | round(x)
此函式返回最接近 x 的整數值,中間值舍入遠離零。 |
4 | trunc(x)
將 x 舍入到零,返回大小不超過 x 的最近整數值。 |
5 | fmod(x, y)
返回 numer/denom (x/y) 的浮點餘數,向零舍入。 |
檢索最小的整數
在下面的示例中,我們將使用 ceil(),它向上舍入浮點數,返回大於或等於輸入的最小整數。
#include <iostream> #include <cmath> int main() { double value = 3.45; double result = ceil(value); std::cout << "The ceiling of " << value << " is " << result << std::endl; return 0; }
輸出
The ceiling of 3.45 is 4
浮點操作函式
這些浮點操作函式用於處理浮點數。
序號 | 函式及說明 |
---|---|
1 | copysign(x, y)
此函式返回一個值,該值具有 x 的大小和 y 的符號。 |
2 | nan()
此函式返回型別為 double 的靜默 NaN(非數字)值。 |
3 | nextafter(x, y)
此函式返回 x 之後朝 y 方向的下一個可表示的值。 |
4 | nexttoward(x, y)
此函式返回 x 之後朝 y 方向的下一個可表示的值。 |
最小值、最大值、差值函式
這些函式查詢兩個數字之間的最小值、最大值和絕對差值。
序號 | 函式及說明 |
---|---|
1 | fmin(x, y)
此函式返回其引數中的較小者:x 或 y。 |
2 | fmax(x,y)
此函式返回其引數中的較大者:x 或 y。 |
3 | fdim(x, y)
此函式返回 x 和 y 之間的正差。 |
其他函式
cmath 標頭檔案提供了其他函式,特別是用於處理浮點數。
序號 | 函式及說明 |
---|---|
1 | fabs(x)
此函式返回 x 的絕對值:|x|。 |
2 | abs(x)
此函式計算整數或浮點型別的絕對值。 |
3 | fma(x,y,z)
此乘加函式計算 x 和 y 的乘積,然後將 z 加到結果中 (x*y+z)。 |