struct Float64
Defined in:
big/number.crfloat.cr
primitives.cr
Constant Summary
-
DIGITS =
15
-
The number of decimal digits that can be represented without losing precision
-
EPSILON =
2.2204460492503131e-16
-
The machine epsilon (difference between 1.0 and the next representable value)
-
INFINITY =
(1_f64 / 0_f64).as(Float64)
-
MANT_DIGITS =
53
-
The number of digits that can be represented without losing precision (in base RADIX)
-
MAX =
1.7976931348623157e+308
-
Largest finite value
-
MAX_10_EXP =
308
-
The maximum possible power of 10 exponent (such that 10**MAX_10_EXP is representable)
-
MAX_EXP =
1024
-
The maximum possible normal power of 2 exponent
-
MIN =
-1.7976931348623157e+308
-
Smallest finite value
-
MIN_10_EXP =
-307
-
The minimum possible power of 10 exponent (such that 10**MIN_10_EXP is representable)
-
MIN_EXP =
-1021
-
The minimum possible normal power of 2 exponent
-
MIN_POSITIVE =
2.2250738585072014e-308
-
Smallest normal positive value, whose previous representable value is subnormal
-
MIN_SUBNORMAL =
5.0e-324
-
Smallest representable positive value, whose previous representable value is zero
-
NAN =
(0_f64 / 0_f64).as(Float64)
-
RADIX =
2
-
The radix or integer base used by the internal representation
Constructors
-
.new(value : String, whitespace : Bool = true, strict : Bool = true) : self
Returns a
Float64
by invokingString#to_f64
on value. - .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
- .new(pull : JSON::PullParser)
- .new(value)
- .new!(value) : Float64
-
.parse_hexfloat(str : String) : self
Returns a
Float32
by parsing str as a hexadecimal-significand string.
Class Method Summary
- .from_json_object_key?(key : String) : Float64 | Nil
-
.parse_hexfloat?(str : String) : self | Nil
Returns a
Float32
by parsing str as a hexadecimal-significand string, ornil
if parsing fails.
Instance Method Summary
-
#!=(other : Int8) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Int16) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Int32) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Int64) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Int128) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : UInt8) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : UInt16) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : UInt32) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : UInt64) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : UInt128) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Float32) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#!=(other : Float64) : Bool
Returns
true
ifself
is not equal to other or ifself
and other are unordered. -
#*(other : Int8) : self
Returns the result of multiplying
self
and other. -
#*(other : Int16) : self
Returns the result of multiplying
self
and other. -
#*(other : Int32) : self
Returns the result of multiplying
self
and other. -
#*(other : Int64) : self
Returns the result of multiplying
self
and other. -
#*(other : Int128) : self
Returns the result of multiplying
self
and other. -
#*(other : UInt8) : self
Returns the result of multiplying
self
and other. -
#*(other : UInt16) : self
Returns the result of multiplying
self
and other. -
#*(other : UInt32) : self
Returns the result of multiplying
self
and other. -
#*(other : UInt64) : self
Returns the result of multiplying
self
and other. -
#*(other : UInt128) : self
Returns the result of multiplying
self
and other. -
#*(other : Float32) : self
Returns the result of multiplying
self
and other. -
#*(other : Float64) : self
Returns the result of multiplying
self
and other. - #**(other : Int32)
- #**(other : Float64) : Float64
- #**(other) : Float64
-
#+(other : Int8) : self
Returns the result of adding
self
and other. -
#+(other : Int16) : self
Returns the result of adding
self
and other. -
#+(other : Int32) : self
Returns the result of adding
self
and other. -
#+(other : Int64) : self
Returns the result of adding
self
and other. -
#+(other : Int128) : self
Returns the result of adding
self
and other. -
#+(other : UInt8) : self
Returns the result of adding
self
and other. -
#+(other : UInt16) : self
Returns the result of adding
self
and other. -
#+(other : UInt32) : self
Returns the result of adding
self
and other. -
#+(other : UInt64) : self
Returns the result of adding
self
and other. -
#+(other : UInt128) : self
Returns the result of adding
self
and other. -
#+(other : Float32) : self
Returns the result of adding
self
and other. -
#+(other : Float64) : self
Returns the result of adding
self
and other. -
#-(other : Int8) : self
Returns the result of subtracting
self
and other. -
#-(other : Int16) : self
Returns the result of subtracting
self
and other. -
#-(other : Int32) : self
Returns the result of subtracting
self
and other. -
#-(other : Int64) : self
Returns the result of subtracting
self
and other. -
#-(other : Int128) : self
Returns the result of subtracting
self
and other. -
#-(other : UInt8) : self
Returns the result of subtracting
self
and other. -
#-(other : UInt16) : self
Returns the result of subtracting
self
and other. -
#-(other : UInt32) : self
Returns the result of subtracting
self
and other. -
#-(other : UInt64) : self
Returns the result of subtracting
self
and other. -
#-(other : UInt128) : self
Returns the result of subtracting
self
and other. -
#-(other : Float32) : self
Returns the result of subtracting
self
and other. -
#-(other : Float64) : self
Returns the result of subtracting
self
and other. -
#/(other : Float64) : Float64
Returns the result of division
self
and other. - #/(other : Int8) : Float64
- #/(other : UInt8) : Float64
- #/(other : Int16) : Float64
- #/(other : UInt16) : Float64
- #/(other : Int32) : Float64
- #/(other : UInt32) : Float64
- #/(other : Int64) : Float64
- #/(other : UInt64) : Float64
- #/(other : Int128) : Float64
- #/(other : UInt128) : Float64
- #/(other : Float32) : Float64
- #/(other : BigInt) : BigFloat
- #/(other : BigFloat) : BigFloat
- #/(other : BigDecimal) : BigDecimal
- #/(other : BigRational) : BigRational
-
#<(other : Int8) : Bool
Returns
true
ifself
is less than other. -
#<(other : Int16) : Bool
Returns
true
ifself
is less than other. -
#<(other : Int32) : Bool
Returns
true
ifself
is less than other. -
#<(other : Int64) : Bool
Returns
true
ifself
is less than other. -
#<(other : Int128) : Bool
Returns
true
ifself
is less than other. -
#<(other : UInt8) : Bool
Returns
true
ifself
is less than other. -
#<(other : UInt16) : Bool
Returns
true
ifself
is less than other. -
#<(other : UInt32) : Bool
Returns
true
ifself
is less than other. -
#<(other : UInt64) : Bool
Returns
true
ifself
is less than other. -
#<(other : UInt128) : Bool
Returns
true
ifself
is less than other. -
#<(other : Float32) : Bool
Returns
true
ifself
is less than other. -
#<(other : Float64) : Bool
Returns
true
ifself
is less than other. -
#<=(other : Int8) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Int16) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Int32) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Int64) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Int128) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : UInt8) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : UInt16) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : UInt32) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : UInt64) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : UInt128) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Float32) : Bool
Returns
true
ifself
is less than or equal to other. -
#<=(other : Float64) : Bool
Returns
true
ifself
is less than or equal to other. -
#==(other : Int8) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Int16) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Int32) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Int64) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Int128) : Bool
Returns
true
ifself
is equal to other. -
#==(other : UInt8) : Bool
Returns
true
ifself
is equal to other. -
#==(other : UInt16) : Bool
Returns
true
ifself
is equal to other. -
#==(other : UInt32) : Bool
Returns
true
ifself
is equal to other. -
#==(other : UInt64) : Bool
Returns
true
ifself
is equal to other. -
#==(other : UInt128) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Float32) : Bool
Returns
true
ifself
is equal to other. -
#==(other : Float64) : Bool
Returns
true
ifself
is equal to other. -
#>(other : Int8) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Int16) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Int32) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Int64) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Int128) : Bool
Returns
true
ifself
is greater than other. -
#>(other : UInt8) : Bool
Returns
true
ifself
is greater than other. -
#>(other : UInt16) : Bool
Returns
true
ifself
is greater than other. -
#>(other : UInt32) : Bool
Returns
true
ifself
is greater than other. -
#>(other : UInt64) : Bool
Returns
true
ifself
is greater than other. -
#>(other : UInt128) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Float32) : Bool
Returns
true
ifself
is greater than other. -
#>(other : Float64) : Bool
Returns
true
ifself
is greater than other. -
#>=(other : Int8) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Int16) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Int32) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Int64) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Int128) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : UInt8) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : UInt16) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : UInt32) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : UInt64) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : UInt128) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Float32) : Bool
Returns
true
ifself
is greater than or equal to other. -
#>=(other : Float64) : Bool
Returns
true
ifself
is greater than or equal to other. -
#abs
Returns the absolute value of this number.
- #ceil : Float64
- #clone
-
#fdiv(other : Int8) : self
Returns the float division of
self
and other. -
#fdiv(other : Int16) : self
Returns the float division of
self
and other. -
#fdiv(other : Int32) : self
Returns the float division of
self
and other. -
#fdiv(other : Int64) : self
Returns the float division of
self
and other. -
#fdiv(other : Int128) : self
Returns the float division of
self
and other. -
#fdiv(other : UInt8) : self
Returns the float division of
self
and other. -
#fdiv(other : UInt16) : self
Returns the float division of
self
and other. -
#fdiv(other : UInt32) : self
Returns the float division of
self
and other. -
#fdiv(other : UInt64) : self
Returns the float division of
self
and other. -
#fdiv(other : UInt128) : self
Returns the float division of
self
and other. -
#fdiv(other : Float32) : self
Returns the float division of
self
and other. -
#fdiv(other : Float64) : self
Returns the float division of
self
and other. - #floor : Float64
-
#next_float : Float64
Returns the least
Float64
that is greater thanself
. -
#prev_float : Float64
Returns the greatest
Float64
that is less thanself
. -
#round_away : Float64
Rounds towards the nearest integer.
-
#round_even : Float64
Rounds towards the nearest integer.
-
#to_f : Float64
Returns
self
converted toFloat64
. -
#to_f! : Float64
Returns
self
converted toFloat64
. -
#to_f32 : Float32
Returns
self
converted toFloat32
. -
#to_f32! : Float32
Returns
self
converted toFloat32
. -
#to_f64 : Float64
Returns
self
converted toFloat64
. -
#to_f64! : Float64
Returns
self
converted toFloat64
. -
#to_hexfloat(io : IO) : Nil
Writes
self
's hexadecimal-significand representation to the given io. -
#to_hexfloat : String
Returns the hexadecimal-significand representation of
self
. -
#to_i : Int32
Returns
self
converted toInt32
. -
#to_i! : Int32
Returns
self
converted toInt32
. -
#to_i128 : Int128
Returns
self
converted toInt128
. -
#to_i128! : Int128
Returns
self
converted toInt128
. -
#to_i16 : Int16
Returns
self
converted toInt16
. -
#to_i16! : Int16
Returns
self
converted toInt16
. -
#to_i32 : Int32
Returns
self
converted toInt32
. -
#to_i32! : Int32
Returns
self
converted toInt32
. -
#to_i64 : Int64
Returns
self
converted toInt64
. -
#to_i64! : Int64
Returns
self
converted toInt64
. -
#to_i8 : Int8
Returns
self
converted toInt8
. -
#to_i8! : Int8
Returns
self
converted toInt8
. -
#to_s(io : IO) : Nil
Prints a nicely readable and concise string representation of this object, typically intended for users, to io.
-
#to_s : String
Returns a nicely readable and concise string representation of this object, typically intended for users.
-
#to_u : UInt32
Returns
self
converted toUInt32
. -
#to_u! : UInt32
Returns
self
converted toUInt32
. -
#to_u128 : UInt128
Returns
self
converted toUInt128
. -
#to_u128! : UInt128
Returns
self
converted toUInt128
. -
#to_u16 : UInt16
Returns
self
converted toUInt16
. -
#to_u16! : UInt16
Returns
self
converted toUInt16
. -
#to_u32 : UInt32
Returns
self
converted toUInt32
. -
#to_u32! : UInt32
Returns
self
converted toUInt32
. -
#to_u64 : UInt64
Returns
self
converted toUInt64
. -
#to_u64! : UInt64
Returns
self
converted toUInt64
. -
#to_u8 : UInt8
Returns
self
converted toUInt8
. -
#to_u8! : UInt8
Returns
self
converted toUInt8
. - #trunc : Float64
Instance methods inherited from struct Float
%(other)
%,
-
-,
//(other)
//,
<=>(other : BigInt)<=>(other : BigFloat)
<=>(other : BigRational)
<=>(other : BigDecimal) <=>, days : Time::Span days, fdiv(other : BigInt | BigFloat | BigDecimal | BigRational) : self fdiv, finite? : Bool finite?, hours : Time::Span hours, infinite? : Int32 | Nil infinite?, microseconds : Time::Span microseconds, milliseconds : Time::Span milliseconds, minutes : Time::Span minutes, modulo(other) modulo, nan? : Bool nan?, nanoseconds : Time::Span nanoseconds, remainder(other) remainder, seconds : Time::Span seconds, to_big_d : BigDecimal to_big_d, to_big_i : BigInt to_big_i, to_big_r : BigRational to_big_r, to_io(io : IO, format : IO::ByteFormat) : Nil to_io, to_json(json : JSON::Builder) : Nil to_json, to_json_object_key : String to_json_object_key, to_yaml(yaml : YAML::Nodes::Builder) : Nil to_yaml, weeks : Time::Span weeks
Constructor methods inherited from struct Float
from_io(io : IO, format : IO::ByteFormat) : self
from_io
Instance methods inherited from module Comparable(BigDecimal)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from module Comparable(BigRational)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from module Comparable(BigInt)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from struct Number
*(other : BigFloat) : BigFloat*(other : Complex) : Complex *, +(other : BigFloat)
+(other : Complex) : Complex
+ +, -(other : BigFloat)
-(other : Complex) : Complex -, /(other : BigFloat) : BigFloat
/(other : Complex) : Complex /, //(other) //, <=>(other) : Int32 | Nil <=>, ==(other : Complex) ==, abs : self abs, abs2 abs2, cis : Complex cis, divmod(number) divmod, format(io : IO, separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : Nil
format(separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : String format, hash(hasher) hash, humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Indexable = SI_PREFIXES) : Nil
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes = SI_PREFIXES) : String
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &prefixes : Int32, Float64 -> Tuple(Int32, _) | Tuple(Int32, _, Bool)) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &) : String
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : String humanize, i : Complex i, integer? : Bool integer?, negative? : Bool negative?, positive? : Bool positive?, round(mode : RoundingMode = :ties_even) : self
round(digits : Number, base = 10, *, mode : RoundingMode = :ties_even) round, sign : Int32 sign, significant(digits, base = 10) significant, step(*, to limit = nil, exclusive : Bool = false, &) : Nil
step(*, to limit = nil, exclusive : Bool = false) step, to_big_f : BigFloat to_big_f, to_c : Complex to_c, to_yaml(yaml : YAML::Nodes::Builder) : Nil to_yaml, zero? : Bool zero?
Constructor methods inherited from struct Number
additive_identity : self
additive_identity,
multiplicative_identity : self
multiplicative_identity,
zero : self
zero
Class methods inherited from struct Number
si_prefix(magnitude : Int, prefixes = SI_PREFIXES) : Char | Nil
si_prefix
Macros inherited from struct Number
[](*nums)
[],
slice(*nums, read_only = false)
slice,
static_array(*nums)
static_array
Instance methods inherited from module Comparable(BigFloat)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from module Steppable
step(*, to limit = nil, by step, exclusive : Bool = false, &) : Nilstep(*, to limit = nil, by step, exclusive : Bool = false) step
Instance methods inherited from module Comparable(Number)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Macros inherited from class Object
class_getter(*names, &block)
class_getter,
class_getter!(*names)
class_getter!,
class_getter?(*names, &block)
class_getter?,
class_property(*names, &block)
class_property,
class_property!(*names)
class_property!,
class_property?(*names, &block)
class_property?,
class_setter(*names)
class_setter,
def_clone
def_clone,
def_equals(*fields)
def_equals,
def_equals_and_hash(*fields)
def_equals_and_hash,
def_hash(*fields)
def_hash,
delegate(*methods, to object)
delegate,
forward_missing_to(delegate)
forward_missing_to,
getter(*names, &block)
getter,
getter!(*names)
getter!,
getter?(*names, &block)
getter?,
property(*names, &block)
property,
property!(*names)
property!,
property?(*names, &block)
property?,
setter(*names)
setter
Constructor Detail
Returns a Float64
by invoking String#to_f64
on value.
Float64.new "20" # => 20.0
Float64.new " 20 ", whitespace: false # raises ArgumentError: Invalid Float64: " 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.
Float64.parse_hexfloat("0x123.456p7") # => 37282.6875
Float64.parse_hexfloat("0x1.fffffffffffffp+1023") # => Float64::MAX
Float64.parse_hexfloat("-inf") # => -Float64::INFINITY
Float64.parse_hexfloat("0x1") # Invalid hexfloat: expected 'p' or 'P' (ArgumentError)
Float64.parse_hexfloat("a.bp+3") # Invalid hexfloat: expected '0' (ArgumentError)
Class Method Detail
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.
Float64.parse_hexfloat?("0x123.456p7") # => 37282.6875
Float64.parse_hexfloat?("0x1.fffffep+127") # => Float64::MAX
Float64.parse_hexfloat?("-inf") # => -Float64::INFINITY
Float64.parse_hexfloat?("0x1") # => nil
Float64.parse_hexfloat?("a.bp+3") # => nil
Instance Method Detail
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.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns true
if self
is greater than or equal to other.
Returns the absolute value of this number.
123.abs # => 123
-123.abs # => 123
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 self
converted to Float64
.
Raises OverflowError
in case of overflow.
Returns self
converted to Float64
.
In case of overflow
infinity is returned.
Returns self
converted to Float32
.
Raises OverflowError
in case of overflow.
Returns self
converted to Float32
.
In case of overflow
infinity is returned.
Returns self
converted to Float64
.
Raises OverflowError
in case of overflow.
Returns self
converted to Float64
.
In case of overflow
infinity is returned.
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.to_hexfloat # => "0x1.3484p+10"
Float64::MAX.to_hexfloat # => "0x1.fffffffffffffp+1023"
Float64::MIN_SUBNORMAL.to_hexfloat # => "0x0.0000000000001p-1022"
Returns self
converted to Int32
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int32
.
In case of overflow
the result is undefined.
Returns self
converted to Int128
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int128
.
In case of overflow
the result is undefined.
Returns self
converted to Int16
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int16
.
In case of overflow
the result is undefined.
Returns self
converted to Int32
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int32
.
In case of overflow
the result is undefined.
Returns self
converted to Int64
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int64
.
In case of overflow
the result is undefined.
Returns self
converted to Int8
.
Raises OverflowError
in case of overflow.
Returns self
converted to Int8
.
In case of overflow
the result is undefined.
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
.
Returns self
converted to UInt32
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt32
.
In case of overflow
the result is undefined.
Returns self
converted to UInt128
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt128
.
In case of overflow
the result is undefined.
Returns self
converted to UInt16
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt16
.
In case of overflow
the result is undefined.
Returns self
converted to UInt32
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt32
.
In case of overflow
the result is undefined.
Returns self
converted to UInt64
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt64
.
In case of overflow
the result is undefined.
Returns self
converted to UInt8
.
Raises OverflowError
in case of overflow.
Returns self
converted to UInt8
.
In case of overflow
the result is undefined.