Round to a number of digits
Apply decimal scaling and JavaScript rounding for display-oriented values.
function roundTo({ value, digits }) { const factor = 10 ** digits; return Math.round(value * factor) / factor; }
Input & expected output
Input
{
"value": 12.3456,
"digits": 2
}Expected output
12.35The edge case
Input
{
"value": 1.005,
"digits": 2
}Expected output
1Know the limits
- Binary floating-point explains the 1.005 edge case. This is not exact decimal arithmetic.
- The lab allows 0–6 digits. Never use this function as a financial rounding policy.
The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.
Source & maintenance
Based on Round a number to a given number of digits from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.
Curated implementation; explicit input bounds, edge cases, local fixtures and rebuilt presentation. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Clamp a number to a range — Keep a number inside an inclusive minimum and maximum.
- Add an ordinal suffix to a number — Append st, nd, rd or th to a positive integer.
- Calculate Fibonacci numbers — Return the nth Fibonacci number with memoized recursion.