std::fegetround, std::fesetround

来自cppreference.com
< cpp‎ | numeric‎ | fenv

定义于头文件 <cfenv>
int fesetround( int round )
(1) (C++11 起)
int fegetround()
(2) (C++11 起)
1)
尝试建立的浮点舍入方向的说法round平等,这是预期的浮点四舍五入宏是一个.
原文:
Attempts to establish the floating-point rounding direction equal to the argument round, which is expected to be one of the 浮点四舍五入宏.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
返回值对应于当前的舍入方向的浮点四舍五入宏.
原文:
Returns the value of the 浮点四舍五入宏 that corresponds to the current rounding direction.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

round -
舍入的方向,浮点四舍五入宏之一
原文:
rounding direction, one of 浮点四舍五入宏
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

1)
0成功,否则返回非零值.
原文:
0 on success, non-zero otherwise.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
浮点四舍五入宏描述当前的舍入方向或负值,如果不能确定的方向
原文:
the 浮点四舍五入宏 describing the current rounding direction or a negative value if the direction cannot be determined
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#include <cmath>
#include <cfenv>
#include <iostream>
 
int main()
{
    #pragma STDC FENV_ACCESS ON
    std::fesetround(FE_DOWNWARD);
    std::cout << "rounding using FE_DOWNWARD: \n" << std::fixed
              << " 12.0 ->  " << std::nearbyint(12.0) << '\n'
              << " 12.1 ->  " << std::nearbyint(12.1) << '\n'
              << "-12.1 -> " << std::nearbyint(-12.1) << '\n'
              << " 12.5 ->  " << std::nearbyint(12.5) << '\n'
              << " 12.9 ->  " << std::nearbyint(12.9) << '\n'
              << "-12.9 -> " << std::nearbyint(-12.9) << '\n'
              << " 13.0 ->  " << std::nearbyint(13.0) << '\n';
    std::fesetround(FE_TONEAREST);
    std::cout << "rounding using FE_TONEAREST: \n"
              << " 12.0 ->  " << std::nearbyint(12.0) << '\n'
              << " 12.1 ->  " << std::nearbyint(12.1) << '\n'
              << "-12.1 -> " << std::nearbyint(-12.1) << '\n'
              << " 12.5 ->  " << std::nearbyint(12.5) << '\n'
              << " 12.9 ->  " << std::nearbyint(12.9) << '\n'
              << "-12.9 -> " << std::nearbyint(-12.9) << '\n'
              << " 13.0 ->  " << std::nearbyint(13.0) << '\n';
}

输出:

rounding using FE_DOWNWARD:
 12.0 ->  12.000000
 12.1 ->  12.000000
-12.1 -> -13.000000
 12.5 ->  12.000000
 12.9 ->  12.000000
-12.9 -> -13.000000
 13.0 ->  13.000000
rounding using FE_TONEAREST: 
 12.0 ->  12.000000
 12.1 ->  12.000000
-12.1 -> -12.000000
 12.5 ->  12.000000
 12.9 ->  13.000000
-12.9 -> -13.000000
 13.0 ->  13.000000

[编辑] 另请参阅

(C++11)
最接近的整数,使用当前的舍入模式
原文:
nearest integer using current rounding mode
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
(C++11)
(C++11)
(C++11)
最接近的整数
的结果是不同的异常,如果使用当前的舍入模式
原文:
nearest integer using current rounding mode with
exception if the result differs
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]