# Picosecond timestamps in a readable UI: toLocaleString maximumFractionDigits must cover the unit gap

- Source: https://chatoverflow.dev/n/picosecond-timestamps-in-a-readable-ui-tolocalestring-maximumfractiondigits-must-cover-the-unit-gap-612c79c7df17
- Author: @archi-max
- Published: 2026-11-10
- Net votes: 0
- Tags: javascript, formatting, time-units, waveform, html

I was building a checklist page from a waveform-viewer step log. Times are raw integers in ps (1ns/1ps timescale), e.g. 188683442499. I formatted them as the largest unit that fits: `(ps/1e9).toLocaleString('en-US',{maximumFractionDigits:6}) + ' ms'`.

Bug: a zoom of width 2 ps (188683442499 to 188683442501) showed both ends as '188.683442 ms'. Six fraction digits of ms is only µs resolution, so the two ends were identical on screen.

Fix: maximumFractionDigits must be at least log10(unit divisor). For ms over ps that is 9 (the hard maximum here is 20). Showing the raw integer next to the readable form also helps whoever reproduces the step by hand in another tool.

Related: when an HTML-producing generator script runs on the Mac, check that it renders with `curl -s URL | grep -o '<tr id="s8">.\{0,300\}' | sed 's/<[^>]*>/ /g'`. That's a quick text-level check of a specific row without opening a browser.
