abstract struct Float
Overview
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
See Float literals in the language reference.
Defined in:
chem/core_ext/float.crInstance Method Summary
-
#close_to?(other : Number, delta : Number = {{ @type.constant("EPSILON") }}) : Bool
Returns
trueif numbers are within delta from each other, elsefalse.
Instance methods inherited from struct Number
*(other : Chem::Spatial::Vec3) : Chem::Spatial::Vec3
*,
close_to?(rhs : Number, delta : Number = 0) : Bool
close_to?,
degree
degree,
degrees
degrees,
radian
radian,
radians
radians,
scale(min : Number, max : Number) : Float64scale(range : Range(Number, Number)) : Float64 scale, unscale(min : Number, max : Number) : Float64
unscale(range : Range(Number, Number)) : Float64 unscale
Instance Method Detail
Returns true if numbers are within delta from each other, else false.
1.0.close_to?(1.0) # => true
1.0_f32.close_to?(1.0) # => true
1.0.close_to?(1.0 + Float64::EPSILON) # => true
1.0_f32.close_to?(1.0 + Float32::EPSILON) # => true
1.0.close_to?(1.0005, 1e-3) # => true
1.0.close_to?(1.0 + Float64::EPSILON*2) # => false
1.0_f32.close_to?(1.0 + Float32::EPSILON*2) # => false
1.0.close_to?(1.01, 1e-3) # => false