toFraction

Returns a simple fraction representation of the receiver.

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

const [n, d] = Arith.from("1.75").toFraction();
n.toString(); // "7"
d.toString(); // "4"

const [piN, piD] = Arith.from("3.14159265358").toFraction(10000);
piN.toString(); // "355"
piD.toString(); // "113"

// The denominator is positive and no larger than maxDenominator.
const [roundedN, roundedD] = Arith.from("0.333").toFraction(100);
roundedN.toString(); // "1"
roundedD.toString(); // "3"

API Reference

Signature

toFraction(maxDenominator?: ArithValue): [ArithInstance, ArithInstance];

Parameters

ParameterTypeRequiredNotes
maxDenominatorArithValueNoPositive integer denominator limit, or Infinity.

Returns

Returns [numerator, denominator], both as Arith instances.

Throws

  • Throws if maxDenominator is not a positive integer or Infinity.
  • Throws if maxDenominator is invalid while STRICT is true.

Agent Contract

FieldValue
Kindinstance method
Canonical nametoFraction
AliasesNone
Mutates receiverNo
Returns[ArithInstance, ArithInstance]
Accepts (string, base) overloadNo
Configuration dependenciesSTRICT
Related methodstoString, toObject

Agent Notes

  • 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.