fegetround, fesetroundfegetround, fesetround

Pobiera lub ustawia bieżący tryb zaokrąglania zmiennoprzecinkowego.Gets or sets the current floating-point rounding mode.

SkładniaSyntax

int fegetround(void);

int fesetround(
   int round_mode
);

ParametryParameters

round_moderound_mode
Tryb zaokrąglania, który ma zostać ustawiony, jako jedno z makr zaokrągleń zmiennoprzecinkowego.The rounding mode to set, as one of the floating-point rounding macros. Jeśli wartość nie jest równa jednemu z makr zaokrągleń zmiennoprzecinkowego, tryb zaokrąglania nie jest zmieniany.If the value is not equal to one of the floating-point rounding macros, the rounding mode is not changed.

Wartość zwracanaReturn Value

Po powodzeniu funkcja fegetround zwraca tryb zaokrąglania jako jedną z wartości makr liczbowych zmiennoprzecinkowych.On success, fegetround returns the rounding mode as one of the floating point rounding macro values. Zwraca wartość ujemną, jeśli nie można określić bieżącego trybu zaokrąglania.It returns a negative value if the current rounding mode can't be determined.

Po powodzeniu funkcja fesetround zwraca wartość 0.On success, fesetround returns 0. W przeciwnym razie zwracana jest wartość różna od zera.Otherwise, a non-zero value is returned.

UwagiRemarks

Operacje zmiennoprzecinkowe mogą korzystać z jednego z kilku trybów zaokrąglania.Floating-point operations can use one of several rounding modes. Te kontrolki wskazujące kierunek wykonywania operacji zmiennoprzecinkowych są zaokrąglane do momentu, w którym są przechowywane wyniki.These control which direction the results of floating-point operations are rounded toward when the results are stored. Są to nazwy i zachowania w przypadku makr zaokrągleń zmiennoprzecinkowego zdefiniowanych w <fenv.h> :These are the names and behaviors of the floating-point rounding macros defined in <fenv.h>:

MakroMacro OpisDescription
FE_DOWNWARDFE_DOWNWARD Zaokrąglij do ujemnej nieskończoności.Round towards negative infinity.
FE_TONEARESTFE_TONEAREST Zaokrąglij do najbliższej.Round towards the nearest.
FE_TOWARDZEROFE_TOWARDZERO Zaokrąglij do zera.Round towards zero.
FE_UPWARDFE_UPWARD Zaokrąglij do nieskończoności dodatniej.Round towards positive infinity.

Domyślnym zachowaniem FE_TONEAREST jest zaokrąglenie wyników w połowie wartości w przybliżeniu do najbliższej wartości z parzystą (0) najmniej znaczącym bitem.The default behavior of FE_TONEAREST is to round results midway between representable values toward the nearest value with an even (0) least significant bit.

Bieżący tryb zaokrąglania ma wpływ na te operacje:The current rounding mode affects these operations:

  • Konwersje ciągów.String conversions.

  • Wyniki operatorów arytmetycznych zmiennoprzecinkowych spoza wyrażeń stałych.The results of floating-point arithmetic operators outside of constant expressions.

  • Funkcje zaokrąglania biblioteki, takie jak rukuj i nearbyint —.The library rounding functions, such as rint and nearbyint.

  • Zwraca wartości z funkcji matematycznych biblioteki standardowej.Return values from standard library mathematical functions.

Bieżący tryb zaokrąglania nie ma wpływu na te operacje:The current rounding mode does not affect these operations:

  • Funkcje biblioteki TRUNC —, ceil —, Floor i lround .The trunc, ceil, floor, and lround library functions.

  • Wartości zmiennoprzecinkowe do niejawnych rzutowania i konwersji, które zawsze są zaokrąglane w kierunku zera.Floating-point to integer implicit casts and conversions, which always round towards zero.

  • Wyniki operatorów arytmetycznych zmiennoprzecinkowych w wyrażeniach stałych, które zawsze są zaokrąglane do najbliższej wartości.The results of floating-point arithmetic operators in constant expressions, which always round to the nearest value.

Aby korzystać z tych funkcji, należy wyłączyć optymalizacje zmiennoprzecinkowe, które mogą uniemożliwić dostęp przy użyciu #pragma fenv_access(on) dyrektywy przed wywołaniem.To use these functions, you must turn off floating-point optimizations that could prevent access by using the #pragma fenv_access(on) directive prior to the call. Aby uzyskać więcej informacji, zobacz fenv_access.For more information, see fenv_access.

WymaganiaRequirements

FunkcjaFunction Nagłówek języka CC header Nagłówek C++C++ header
fegetround, fesetroundfegetround, fesetround <fenv.h> <cfenv>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodność.For additional compatibility information, see Compatibility.

Zobacz teżSee also

Alfabetyczne zestawienie funkcjiAlphabetical Function Reference
nearbyint, nearbyintf, nearbyintlnearbyint, nearbyintf, nearbyintl
rint, rintf, rintlrint, rintf, rintl
lrint, lrintf, lrintl, llrint, llrintf, llrintllrint, lrintf, lrintl, llrint, llrintf, llrintl