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 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/28.0 Chrome/130.0.0.0 Mobile Safari/537.36
Browser:
Chrome Mobile 130
Operating system:
Android
Device Platform:
Mobile
Date tested:
one year ago
Test name
Executions per second
Number.toLocaleString
6190.3 Ops/sec
Intl.NumberFormat
305705.9 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);