The following is a formatting function that controls the number of decimal places and is automatically rounded down. For example, 12345 is formatted as 12,345.00, 12345.6 is formatted as 12,345.60, and 12345.67 is formatted as 12,345.67, leaving only two decimal places.
Number of decimal places: 2 3 4 5 +
The program code is as follows:
<script type="text/javascript"> function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; t = ""; for(i = 0; i < l.length; i ++ ) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; } function rmoney(s) { return parseFloat(s.replace(/[^\d\.-]/g, "")); } function g(id) { return document.getElementById(id); } window.onload = function() { var num, txt = g("txt"), txt2 = g("txt2"), btn = g("btn"), btn2 = g("btn2"), span = g("span"); btn.onclick = function() { num = parseInt(g("num").value); txt.value = fmoney(txt.value, num); txt2.value = fmoney(txt2.value, num); } ; btn2.onclick = function() { num = parseInt(g("num").value); span.innerHTML = "=" + fmoney(rmoney(txt.value) + rmoney(txt2.value), num); } ; } ; </script>
Call fmoney ("12345.675910", 3) and return 12,345.676.