Number
abstract struct Number
Overview
The top-level number type.
Included Modules
Direct Known Subclasses
Defined in:
number.crbig/big_float.cr
yaml/to_yaml.cr
complex.cr
Class Method Summary
Instance Method Summary
- #*(other : Complex)
- #*(other : BigFloat)
- #+(other : BigFloat)
- #+(other : Complex)
- #+
Returns self.
- #-(other : Complex)
- #-(other : BigFloat)
- #/(other : Complex)
- #<=>(other : BigFloat)
- #<=>(other)
Implements the comparison operator.
- #==(other : Complex)
- #abs
Returns the absolute value of this number.
- #abs2
Returns the square of
self
(self * self
). - #cis
- #clamp(min, max)
Clamps a value between min and max.
- #clamp(range : Range)
Clamps a value within range.
- #divmod(number)
Returns a
Tuple
of two elements containing the quotient and modulus obtained by dividingself
by number. - #i
- #round(digits, base = 10)
Rounds this number to a given precision in decimal digits.
- #sign
Returns the sign of this number as an
Int32
. - #significant(digits, base = 10)
Keeps digits significants digits of this number in the given base.
- #step(*, to = nil, by = 1, &block)
Invokes the given block with the sequence of numbers starting at
self
, incremented by by on each call, and with an optional to. - #step(*, to = nil, by = 1)
- #to_big_f
- #to_c
- #to_yaml(yaml : YAML::Builder)
Macro Summary
- [](*nums)
- slice(*nums, read_only = false)
- static_array(*nums)
Creates a
StaticArray
ofself
with the given values, which will be casted to this type with thenew
method (defined in eachNumber
type)-
Instance methods inherited from module Comparable(BigFloat)
<, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) >, >=(other : T) >= Instance methods inherited from module Comparable(Number)
<, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) >, >=(other : T) >= Instance methods inherited from struct Value
==(other) ==, dup dup Instance methods inherited from class Object
!=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try
Class methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io) : self from_yaml
Class Method Detail
def self.zero : selfSource
Instance Method Detail
def +Source
Returns self.
def <=>(other)Source
Implements the comparison operator.
See also: Object#<=>
.
def absSource
Returns the absolute value of this number.
123.abs # => 123 -123.abs # => 123
def abs2Source
Returns the square of self
(self * self
).
4.abs2 # => 16 1.5.abs2 # => 2.25
def cisSource
def clamp(min, max)Source
Clamps a value between min and max.
5.clamp(10, 100) # => 10 50.clamp(10, 100) # => 50 500.clamp(10, 100) # => 100
def clamp(range : Range)Source
Clamps a value within range.
5.clamp(10..100) # => 10 50.clamp(10..100) # => 50 500.clamp(10..100) # => 100
def divmod(number)Source
Returns a Tuple
of two elements containing the quotient and modulus obtained by dividing self
by number.
11.divmod(3) # => {3, 2} 11.divmod(-3) # => {-4, -1}
def iSource
def round(digits, base = 10)Source
Rounds this number to a given precision in decimal digits.
-1763.116.round(2) # => -1763.12
def signSource
Returns the sign of this number as an Int32
.
-
-1
if this number is negative -
0
if this number is zero -
1
if this number is positive
123.sign # => 1 0.sign # => 0 -42.sign # => -1
def significant(digits, base = 10)Source
Keeps digits significants digits of this number in the given base.
1234.567.significant(1) # => 1000 1234.567.significant(2) # => 1200 1234.567.significant(3) # => 1230 1234.567.significant(4) # => 1235 1234.567.significant(5) # => 1234.6 1234.567.significant(6) # => 1234.57 1234.567.significant(7) # => 1234.567 1234.567.significant(8) # => 1234.567 15.159.significant(1, base = 2) # => 16
def step(*, to = nil, by = 1, &block)Source
Invokes the given block with the sequence of numbers starting at self
, incremented by by on each call, and with an optional to.
3.step(to: 10, by: 2) do |n| puts n end
Output:
3 5 7 9
def step(*, to = nil, by = 1)Source
def to_big_fSource
def to_cSource
def to_yaml(yaml : YAML::Builder)Source
Macro Detail
macro [](*nums)Source
macro slice(*nums, read_only = false)Source
macro static_array(*nums)Source
Creates a StaticArray
of self
with the given values, which will be casted to this type with the new
method (defined in each Number
type)-
floats = Float64.static_array(1, 2, 3, 4) floats.class # => StaticArray(Float64, 4) ints = Int64.static_array(1, 2, 3) ints.class # => StaticArray(Int64, 3)
© 2012–2017 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.22.0/Number.html