Float is the base type of all floating point numbers.
There are two floating point types, Float32 and Float64, which correspond to the binary32 and binary64 types defined by IEEE.
A floating point literal is an optional + or #- sign, followed by a sequence of numbers or underscores, followed by a dot, followed by numbers or underscores, followed by an optional exponent suffix, followed by an optional type suffix. If no suffix is present, the literal's type is Float64.
1.0 # Float64 1.0_f32 # Float32 1_f32 # Float32 1e10 # Float64 1.5e10 # Float64 1.5e-7 # Float64 +1.3 # Float64 -0.5 # Float64
The underscore _ before the suffix is optional.
Underscores can be used to make some numbers more readable:
1_000_000.111_111 # better than 1000000.111111
Reads a float from the given io in the given format.
Divides self by other using floored division.
The comparison operator.
Returns a Time::Span of self days.
Returns a Time::Span of self hours.
Returns a Time::Span of self microseconds.
Returns a Time::Span of self milliseconds.
Returns a Time::Span of self minutes.
Returns a Time::Span of self nanoseconds.
Returns a Time::Span of self seconds.
Converts self to BigDecimal.
Returns a BigInt representing this float (rounded using floor).
Returns a BigRational representing this float.
Writes this float to the given io in the given format.
Returns a Time::Span of self weeks.
Comparable(BigDecimal)
Comparable(BigRational)
Comparable(BigInt)
Number
Number
Number
Comparable(BigFloat)
Comparable(Number)
Value
Object
Object
Reads a float from the given io in the given format. See also: IO#read_bytes.
Divides self by other using floored division.
The result will be of the same type as self.
The comparison operator. Returns 0 if the two objects are equal, a negative number if this object is considered less than other, a positive number if this object is considered greter than other, or nil if the two objects are not comparable.
Subclasses define this method to provide class-specific ordering.
The comparison operator is usually used to sort values:
# Sort in a descending way:
[3, 1, 2].sort { |x, y| y <=> x } # => [3, 2, 1]
# Sort in an ascending way:
[3, 1, 2].sort { |x, y| x <=> y } # => [1, 2, 3] Returns a Time::Span of self days.
Returns a Time::Span of self hours.
Returns a Time::Span of self microseconds.
Returns a Time::Span of self milliseconds.
Returns a Time::Span of self minutes.
Returns a Time::Span of self nanoseconds.
Returns a Time::Span of self seconds.
Converts self to BigDecimal.
NOTE Floats are fundamentally less precise than BigDecimals, which makes conversion to them risky.
require "big" 1212341515125412412412421.0.to_big_d
Returns a BigInt representing this float (rounded using floor).
require "big" 1212341515125412412412421.0.to_big_i
Returns a BigRational representing this float.
require "big" 123.0.to_big_r
Writes this float to the given io in the given format. See also: IO#write_bytes.
Returns a Time::Span of self weeks.
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Float.html