Float32
Inherits Float / Comparable / Comparable / Comparable / Number / Comparable / Steppable / Comparable / Value / Object
Constants
The number of decimal digits that can be represented without losing precision
The machine epsilon (difference between 1.0 and the next representable value)
The number of digits that can be represented without losing precision (in base RADIX)
Largest finite value
The maximum possible power of 10 exponent (such that 10**MAX_10_EXP is representable)
The maximum possible normal power of 2 exponent
Smallest finite value
The minimum possible power of 10 exponent (such that 10**MIN_10_EXP is representable)
The minimum possible normal power of 2 exponent
Smallest normal positive value, whose previous representable value is subnormal
Smallest representable positive value, whose previous representable value is zero
The radix or integer base used by the internal representation
Constructors
Returns a Float32 by invoking String#to_f32 on value.
Float32.new "20" # => 20.0
Float32.new " 20 ", whitespace: false # raises ArgumentError: Invalid Float32: " 20 "
Returns a Float32 by parsing str as a hexadecimal-significand string.
The string format is defined in section 5.12.3 of IEEE 754-2008, and is the
same as the %a specifier for sprintf. Unlike e.g. String#to_f,
whitespace and underscores are not allowed. Non-finite values are also
recognized.
Raises ArgumentError if str is not a valid hexadecimal-significand
string.
Float32.parse_hexfloat("0x123.456p7") # => 37282.6875_f32
Float32.parse_hexfloat("0x1.fffffep+127") # => Float32::MAX
Float32.parse_hexfloat("-inf") # => -Float32::INFINITY
Float32.parse_hexfloat("0x1") # Invalid hexfloat: expected 'p' or 'P' (ArgumentError)
Float32.parse_hexfloat("a.bp+3") # Invalid hexfloat: expected '0' (ArgumentError)
Class methods
Returns a Float32 by parsing str as a hexadecimal-significand string, or
nil if parsing fails.
The string format is defined in section 5.12.3 of IEEE 754-2008, and is the
same as the %a specifier for sprintf. Unlike e.g. String#to_f,
whitespace and underscores are not allowed. Non-finite values are also
recognized.
Float32.parse_hexfloat?("0x123.456p7") # => 37282.6875_f32
Float32.parse_hexfloat?("0x1.fffffep+127") # => Float32::MAX
Float32.parse_hexfloat?("-inf") # => -Float32::INFINITY
Float32.parse_hexfloat?("0x1") # => nil
Float32.parse_hexfloat?("a.bp+3") # => nil
Instance methods
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Returns true if self is not equal to other
or if self and other are unordered.
Negates this value's sign.
Works on signed zeros and not-a-number values as well. The negation of
0.0_f32 is -0.0_f32, and vice versa. The negation of a not-a-number
value is only observable via #sign_bit.
Checks whether this value is infinite. Returns 1 if this value is positive
infinity, -1 if this value is negative infinity, or nil otherwise.
Rounds towards the nearest integer. If both neighboring integers are equidistant, rounds away from zero.
Rounds towards the nearest integer. If both neighboring integers are equidistant, rounds towards the even neighbor (Banker's rounding).
Returns -1 if the sign bit of this float is set, 1 otherwise.
Unlike #sign, this works on signed zeros and not-a-numbers as well.
Writes self's hexadecimal-significand representation to the given io.
Returns the hexadecimal-significand representation of self.
The string format is defined in section 5.12.3 of IEEE 754-2008, and is the
same as the %a specifier for sprintf. The integral part of the returned
string is 0 if self is subnormal, otherwise 1. The fractional part
contains only significant digits.
1234.0625_f32.to_hexfloat # => "0x1.3484p+10"
Float32::MAX.to_hexfloat # => "0x1.fffffep+127"
Float32::MIN_SUBNORMAL.to_hexfloat # => "0x0.000002p-126"
Prints a nicely readable and concise string representation of this object, typically intended for users, to io.
This method is called when an object is interpolated in a string literal:
"foo #{bar} baz" # calls bar.to_io with the builder for this string
IO#<< calls this method to append an object to itself:
io << bar # calls bar.to_s(io)
Thus implementations must not interpolate self in a string literal or call
io << self which both would lead to an endless loop.
Also see #inspect(IO).
Returns a nicely readable and concise string representation of this object, typically intended for users.
This method should usually not be overridden. It delegates to
#to_s(IO) which can be overridden for custom implementations.
Also see #inspect.