fromRatio

Creates an Arith decimal value from an explicit "p/q" ratio string.

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

Arith.fromRatio("1/3").toString(); // "0.33333333333333333333"
Arith.fromRatio("30/360").toString(); // "0.08333333333333333333"

// Whitespace around either side is allowed.
Arith.fromRatio(" 1 / 3 ").toString(); // "0.33333333333333333333"

// Signs may appear on the numerator or denominator.
Arith.fromRatio("-1/3").toString(); // "-0.33333333333333333333"
Arith.fromRatio("1/-3").toString(); // "-0.33333333333333333333"
Arith.fromRatio("-1/-3").toString(); // "0.33333333333333333333"

// The result follows the constructor's precision config.
const Short = Arith.clone({ DECIMAL_PLACES: 4 });
Short.fromRatio("1/3").toString(); // "0.3333"

// Keep decimal creation and ratio parsing separate.
Arith.from("1/3"); // throws

API Reference

Signature

Arith.fromRatio(ratio: string): ArithInstance;

Parameters

ParameterTypeRequiredNotes
ratiostringYesA string with exactly one /, finite integer numerator, and finite non-zero integer denominator.

Returns

Returns a new Arith instance containing numerator / denominator.

Throws

  • Throws if ratio is not a string.
  • Throws if the string does not contain exactly one /.
  • Throws if either side is empty, non-finite, or not an integer.
  • Throws if the denominator is 0 or -0.

Agent Contract

FieldValue
Kindstatic factory
Canonical namefromRatio
AliasesNone
Mutates receiverNo
ReturnsArithInstance
Accepts (string, base) overloadNo
Configuration dependenciesDECIMAL_PLACES, ROUNDING_MODE, STRICT
Related methodsratio, from, pow

Agent Notes

  • Use Arith.fromRatio("p/q") when the source text is already a ratio string.
  • Do not generate Arith.from("p/q"); from(...) intentionally rejects ratio strings.
  • Do not generate percent strings or expression strings such as "1 / (2 + 3)".
  • Prefer string inputs for exact ratio values.
  • For numerator and denominator values already separated in code, use Arith.ratio(numerator, denominator).