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