FpCategory in std::num - Rust (original) (raw)
Enum FpCategory
1.0.0 · Source
pub enum FpCategory {
Nan,
Infinite,
Zero,
Subnormal,
Normal,
}
Expand description
A classification of floating point numbers.
This enum
is used as the return type for f32::classify and f64::classify. See their documentation for more.
§Examples
use std::num::FpCategory;
let num = 12.4_f32;
let inf = f32::INFINITY;
let zero = 0f32;
let sub: f32 = 1.1754942e-38;
let nan = f32::NAN;
assert_eq!(num.classify(), FpCategory::Normal);
assert_eq!(inf.classify(), FpCategory::Infinite);
assert_eq!(zero.classify(), FpCategory::Zero);
assert_eq!(sub.classify(), FpCategory::Subnormal);
assert_eq!(nan.classify(), FpCategory::Nan);
§1.0.0
NaN (not a number): this value results from calculations like (-1.0).sqrt()
.
See the documentation for f32 for more information on the unusual properties of NaN.
§1.0.0
Positive or negative infinity, which often results from dividing a nonzero number by zero.
§1.0.0
§1.0.0
“Subnormal” or “denormal” floating point representation (less precise, relative to their magnitude, than Normal).
Subnormal numbers are larger in magnitude than Zero but smaller in magnitude than allNormal numbers.
§1.0.0
A regular floating point number, not any of the exceptional categories.
The smallest positive normal numbers are f32::MIN_POSITIVE and f64::MIN_POSITIVE, and the largest positive normal numbers are f32::MAX and f64::MAX. (Unlike signed integers, floating point numbers are symmetric in their range, so negating any of these constants will produce their negative counterpart.)
Tests for self
and other
values to be equal, and is used by ==
.
Tests for !=
. The default implementation is almost always sufficient, and should not be overridden without very good reason.