Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
cached Number.toLocaleString vs Intl.NumberFormat
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0
Browser:
Firefox 133
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Number.toLocaleString
15425.8 Ops/sec
Intl.NumberFormat
647574.1 Ops/sec
HTML Preparation code:
<script> function toLocaleString(number = NaN, decimals) { return number.toLocaleString('en-US', { maximumFractionDigits: decimals, minimumFractionDigits: decimals, }); }; const numberFormatter = new Intl.NumberFormat('en-US'); const formatCache = new Map(); function formatNumber(number = NaN, decimals) { // Handle NaN early to avoid unnecessary processing if (isNaN(number)) { return 'NaN'; } // Use cached formatter if decimals are undefined if (decimals === undefined) { return numberFormatter.format(number); } // Cache and reuse formatters for specific decimal places let formatter = formatCache.get(decimals); if (!formatter) { formatter = new Intl.NumberFormat('en-US', { maximumFractionDigits: decimals, minimumFractionDigits: decimals, }); formatCache.set(decimals, formatter); } return formatter.format(number); }; </script>
Script Preparation code:
const formatter = new Intl.NumberFormat(undefined, { style: 'currency', currency: 'RUB', });
Tests:
Number.toLocaleString
toLocaleString(1000000, 1); toLocaleString(1000000, 2); toLocaleString(1000000, 10); toLocaleString(1000000, 8); toLocaleString(1000000, 12);
Intl.NumberFormat
formatNumber(1000000, 1); formatNumber(1000000, 2); formatNumber(1000000, 10); formatNumber(1000000, 8); formatNumber(1000000, 12);