A Float number is a double precision floating-point number.
See also "What Every Computer Scientist Should Know About Floating-Point Arithmetic" by David Goldberg.
Constants
EPSILON
Difference between 1.0 and the next representable value of Float.
IO.println(Float.EPSILON) #> 2.2204460492503e-16
INFINITY
Positive infinity, noted \(\infty\).
IO.println(Float.INFINITY) #> inf
See also: NAN, is_infinity
LOWEST
Lowest finite value of Float.
IO.println(Float.LOWEST) #> -1.7976931348623e+308
See also: MAX
MIN
Minimum, normalized, positive value of Float.
IO.println(Float.MIN) #> 2.2250738585072e-308
See also: TRUE_MIN
TRUE_MIN
Minimum positive value of Float.
IO.println(Float.TRUE_MIN) #> 4.9406564584125e-324
See also: MIN
Static Methods
almost_equals(x,y), almost_equals(x, y, abs, rel)
Check if x and y are almost equals. abs is the absolute error allowed and rel is the relative error allowed between x and y. The first version of the function sets abs and rel to Float.EPSILON.
IO.println(Float.almost_equals(42.0, 42.00000000000001)) #> true
IO.println(Float.almost_equals(0.0, Float.MIN)) #> true
IO.println(Float.almost_equals(0.0, Float.EPSILON)) #> true
Methods
fractional
Get the fractional part of a float i.e. the part after any decimal point. The returned value has the same sign as the number.
IO.println(4.2.fractional) #> 0.2
IO.println((-6.9).fractional) #> -0.9
See also: integral
integral
Get the integral part of a float i.e. the part before any decimal point. The returned value has the same sign as the number.
IO.println(4.2.integral) #> 4
IO.println((-6.9).integral) #> -6
See also: fractional
is_infinity
Check if a float is positive infinity or negative infinity.
IO.println(Float.INFINITY.is_infinity) #> true
IO.println(42.0.is_infinity) #> false
is_nan
Check if a float is "Not a Number".
IO.println(Float.NAN.is_nan) #> true
IO.println(42.0.is_nan) #> false
See also: is_infinity, NAN
to_i
Transform the float to an Int by truncating towards zero.
IO.println(4.2.to_i == 4) #> true
IO.println((-6.9).to_i == -6) #> true
to_s
Transform the float to a String.
IO.println(4.2.to_s == "4.2") #> true
IO.println((-6.9).to_s == "-6.9") #> true
Operators
+, - operators
Unary + return the float number itself. Unary - return the opposite of the float number.
IO.println(+4.2) #> 4.2
IO.println(-4.2) #> -4.2
+(other), -(other), *(other), /(other) operators
Compute binary operation using usual arithmetic operators on float numbers. other must be a Float or an Int, there is an implicit conversion from Int.
IO.println(4.2 + 6.9) #> 11.1
IO.println(4.2 - 6.9) #> -2.7
IO.println(4.2 * 6.9) #> 28.98
IO.println(4.2 / 6.9) #> 0.60869565217391
See also: +, - operators, %(other)
%(other)
Compute the float modulo operation. If \(x\) is this and \(y\) is other, return value is \(x - n \times y\), where \(n\) is the quotient of \(x \div y\), rounded toward zero to an integer (like fmod in C). other must be a Float or an Int, there is an implicit conversion from Int.
IO.println(6.9 % 4.2) #> 2.7
==(other), !=(other) operators
Test the float number with other for equality or inequality. other must be a Float, there is no implicit conversion from Int.
IO.println(4.2 == 6.9) #> false
IO.println(4.2 != 6.9) #> true
<(other), <=(other), >(other), >=(other) operators
Compare the float number with other. other must be a Float, there is no implicit conversion from Int.
IO.println(4.2 < 6.9) #> true
IO.println(4.2 <= 6.9) #> true
IO.println(4.2 > 6.9) #> false
IO.println(4.2 >= 6.9) #> false