Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Intl.NumberFormat vs toLocalString vs string split vs toFixed vs bignumber vs regex
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Browser:
Chrome 125
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
toLocaleString
72843.4 Ops/sec
Intl.NumberFormat
71551.3 Ops/sec
string split & reduce
3170191.8 Ops/sec
toFixed
7645841.5 Ops/sec
bignumber
1345675.4 Ops/sec
numberWithCommas
972150.3 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/bignumber.js/9.0.1/bignumber.min.js"></script>
Script Preparation code:
function pricize (num, decimal = 0) { const intPart = Math.floor(num) const intPieces = intPart.toString().split('') const len = intPieces.length const intStr = intPieces.reduce((result, chr, index, array) => { const pos = len - index result += (index !== 0 && pos % 3 === 0) ? ',' + chr : chr return result }, '') const decStr = decimal > 0 ? num.toFixed(decimal + 1).toString().slice(-(decimal + 2), -1) // toFixed() は四捨五入してしまうので(decimal + 1)桁まで求めて切り取る : '' return intStr + decStr } function numberWithCommas(x) { return x.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ","); } var target = 123456789.123456789 var options = {minimumFractionDigits: 3, maximumFractionDigits: 3}
Tests:
toLocaleString
var a = target.toLocaleString('en-US', options);
Intl.NumberFormat
var a = new Intl.NumberFormat('en-US', options).format(target)
string split & reduce
var a = pricize(target, 3)
toFixed
var a = target.toFixed(3)
bignumber
var a = new BigNumber(target).toFormat(3)
numberWithCommas
var a = numberWithCommas(target.toFixed(3))