C++ 中的nearbyint() 函數使用當前舍入模式將參數舍入為整數值。
C++ 中的nearbyint() 函數使用當前舍入模式將參數舍入為整數值。當前舍入模式由函數 fesetround()
確定。 nearbyint() 函數類似於 rint() ,隻是它不會像 rint() 那樣引發 FE_INEXACT 異常。
FE_INEXACT exception 是一個浮點異常,當運算結果由於舍入或逐漸下溢而未準確表示時發生。
nearbyint() 原型 [從 C++ 11 標準開始]
double nearbyint(double x); float nearbyint(float x); long double nearbyint(long double x); double nearbyint(T x); // For integral type
nearbyint() 函數采用單個參數並返回 double、float 或 long double 類型的值。該函數在<cmath> 頭文件中定義。
參數:
nearbyint() 函數采用單個參數值進行舍入。
返回:
nearbyint() 函數使用 fegetround() 指定的舍入方向將參數 x 舍入為整數值並返回該值。默認情況下,舍入方向設置為'to-nearest'。可以使用fesetround() 函數將舍入方向設置為其他值。
示例 1:nearbyint() 如何在 C++ 中工作?
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
// by default, rounding direction is to-nearest i.e. fesetround(FE_TONEAREST)
double x = 11.87, result;
result = nearbyint(x);
cout << "Rounding to-nearest (" << x << ") = " << result << endl;
// upper value is taken for mid-way values
x = 11.5;
result = nearbyint(x);
cout << "Rounding to-nearest (" << x << ") = " << result << endl;
// setting rounding direction to DOWNWARD
fesetround(FE_DOWNWARD);
x = 17.87;
result = nearbyint(x);
cout << "Rounding downward (" << x << ") = " << nearbyint(x) << endl;
// setting rounding direction to UPWARD
x = 33.34;
fesetround(FE_UPWARD);
result = nearbyint(x);
cout << "Rounding upward (" << x << ") = " << result << endl;
return 0;
}
運行程序時,輸出將是:
Rounding to-nearest (11.87) = 12 Rounding to-nearest (11.5) = 12 Rounding downward (17.87) = 17 Rounding upward (33.3401) = 34
示例 2:用於整數類型的 nearbyint() 函數
#include <iostream>
#include <cmath>
#include <cfenv>
using namespace std;
int main()
{
int x = 15;
double result;
// setting rounding direction to DOWNWARD
fesetround(FE_DOWNWARD);
result = nearbyint(x);
cout << "Rounding downward (" << x << ") = " << result << endl;
return 0;
}
運行程序時,輸出將是:
Rounding downward (15) = 15
對於整數值,應用nearbyint
函數返回與輸入相同的值。所以在實踐中它並不常用於整數值。
相關用法
- C++ nearbyint()用法及代碼示例
- C++ nextafter()用法及代碼示例
- C++ negate用法及代碼示例
- C++ nexttoward()用法及代碼示例
- C++ norm()用法及代碼示例
- C++ none_of()用法及代碼示例
- C++ nanl()用法及代碼示例
- C++ nanf()用法及代碼示例
- C++ nan()用法及代碼示例
- C++ unordered_map cbegin用法及代碼示例
- C++ map lower_bound()用法及代碼示例
- C++ Unordered_multimap reserve()用法及代碼示例
- C++ list assign()用法及代碼示例
- C++ std::max()用法及代碼示例
- C++ std::string::push_back()用法及代碼示例
- C++ Array swap()用法及代碼示例
- C++ valarray cos用法及代碼示例
- C++ multimap key_comp()用法及代碼示例
- C++ Deque erase()用法及代碼示例
- C++ List cend()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ nearbyint()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。