mod

Returns the remainder after dividing the receiver by another value.

import { Arith } from "@teakit/arith";

1 % 0.9; // 0.09999999999999998

const x = Arith.from("1");
x.mod("0.9").toString(); // "0.1"

const y = Arith.from("33");
y.mod("a", 33).toString(); // "3"

// Modulo behavior follows MODULO_MODE on the constructor.
const Euclid = Arith.clone({ MODULO_MODE: Arith.EUCLID });
Euclid.from("-7").mod("4").toString(); // "1"

// Use the static helper when no method chain is needed.
Arith.mod("7", "4").toString(); // "3"

API Reference

Signature

mod(n: ArithValue): ArithInstance;
mod(n: string, base: number): ArithInstance;

Parameters

ParameterTypeRequiredNotes
nArithValueYesValue to convert to Arith before applying the operation.
basenumberNoOnly valid with the (string, base) overload. Must be an integer from 2 through ALPHABET.length.

Returns

Returns a new Arith instance. The receiver is not modified.

Throws

  • Throws if base is invalid.
  • Throws if the input value is invalid while STRICT is true.

Agent Contract

FieldValue
Kindinstance method and static helper
Canonical namemod
AliasesNone
Mutates receiverNo
ReturnsArithInstance
Accepts (string, base) overloadYes
Configuration dependenciesMODULO_MODE
Related methodsdiv, idiv

Agent Notes

  • Do not use JavaScript arithmetic operators on Arith values.
  • Import with import { Arith } from "@teakit/arith"; default imports are unsupported.
  • Use Arith.from(...) to create values. Do not generate new Arith(...) or Arith(...).
  • Use string inputs for exact decimal values, especially money-like values.
  • Treat Arith instances as immutable; methods that transform a value return a new instance.
  • Do not mutate internal fields such as c, e, s, or _isArith.