iyi

Standard library, 0.18.0

std/number

import std/number to use it. Source: src/std/number.iyi at v0.18.0.

RoundingModeenum

std/numberiyi doc src/std/number.iyi
pub enum RoundingMode : Int32
  TiesEven = 0
  TiesAway = 1
  ToZero = 2
  ToPositive = 3
  ToNegative = 4
end

Float64struct, reopened

std/numberiyi doc src/std/number.iyi
struct ::Float64
  # To `digits` places in the mode asked for — Crystal's
  # `round(digits, mode: ...)`: `2.675.round(2, :ties_away)` spelled
  # `2.675.round(2, RoundingMode::TiesAway)`. A negative `digits` rounds to
  # tens, hundreds, ..., dividing by the scale first as the prelude's
  # `round(digits)` does.
  # Past a double's range the answer is at hand, as for the prelude's.
  def round(digits : Int32, mode : Std::Number::RoundingMode) : Float64
  def round(mode : Std::Number::RoundingMode) : Float64
end

Numberstruct, reopened

std/numberiyi doc src/std/number.iyi
struct ::Number
  def + : self
  def abs : self
  def abs2 : self
  def self.additive_identity : self
  def divmod(number)
  def self.multiplicative_identity : self
  def negative? : ::Bool
  def positive? : ::Bool
  # An integer is already whole: every mode answers self. `Float64` names
  # the mode below; `round` with no arguments is the prelude's, a tie to
  # the even one, which is `TiesEven`.
  def round(mode : Std::Number::RoundingMode = Std::Number::RoundingMode.new(0)) : self
  def sign : Int32
  def self.zero : self
  def zero? : ::Bool
end