fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Rounding, Precision, Tolerance, and Significant Digits

Install and import#

bash
npm install fintech-algorithms
ts
import { roundingPrecisionToleranceAndSignificantDigits } from "fintech-algorithms/foundations/mathematical-language-and-quantitative-reasoning/rounding-precision-tolerance-and-significant-digits";

Signature#

roundingPrecisionToleranceAndSignificantDigits(input)

Rounds a candidate to a fixed number of decimal places and measures it against a reference value and an allowed tolerance.

Parameters#

NameTypeNotes
inputD00InputA plain object. Every F01 topic first reads values, which must be a non-empty array of finite numbers, and validates it before any per-topic branch runs. This topic then reads candidate, digits, reference and tolerance, each coerced with Number; values is demanded but not used by this calculation.

Returns#

{ rounded: number; withinTolerance: boolean; absoluteError: number }

rounded is the candidate fixed to digits decimal places and read back as a number. absoluteError is the unrounded distance from reference, and withinTolerance is true when that distance is at most tolerance.

Errors#

  • When input is not a plain object — throws TypeError
  • When values is missing, empty, or not an array — throws RangeError
  • When values contains a value that is not a finite number — throws RangeError

Complexity: time O(n), space O(n).

Worked example#

verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.

Input#

input
{
  "values": [1, 2, 3, 4, 5],
  "startingCash": 1000,
  "inflows": 250,
  "outflows": 120,
  "slope": 2,
  "intercept": 1,
  "part": 25,
  "whole": 200,
  "elapsed": 5,
  "old": 4.5,
  "new": 4.75,
  "base": 16,
  "exponent": 0.5,
  "a": 2
}

Showing 14 of 28 fields.

Call#

roundingPrecisionToleranceAndSignificantDigits(input)

Returns#

object with 2 fields: rounded, withinTolerance

{
  "rounded": 10,
  "withinTolerance": true
}

Diagrams#

Rounding, Precision, Tolerance, and Significant Digits — concept anatomy
Rounding, Precision, Tolerance, and Significant Digits — lesson map
Rounding, Precision, Tolerance, and Significant Digits — mistake contrast

Calculation flow#

Rounding, Precision, Tolerance, and Significant Digits — four-part map
flowchart LR
    A["Name the input"] --> B["Apply: difference = |value - reference|; accept when difference ≤ tolerance"]
    B --> C["Check units and boundary"]
    C --> D["Explain the output"]

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

  • Guide for the Use of the International System of Units (SI), NIST SP 811 — NIST/SEMATECH
  • NIST/SEMATECH e-Handbook of Statistical Methods — NIST/SEMATECH
  • Author-derived and synthetic boundary

The rest of the Mathematical Language and Quantitative Reasoning family#