jQuery Rounding Number To Nearest Interval Such: 0.05, 0.5, 0.1, 5, 10, 100
jQuery Rounding Number To Nearest Interval Such: 0.05, 0.5, 0.1, 5, 10, 100
by Pritom K Mondal
HTML
<input type='text' name='number' style='width: 150px;' value='10.21'/>
<input type='text' name='round' style='width: 50px;' value='0.25'/>
<input type='text' name='dp' style='width: 50px;' value='2'/>
<input type='button' name='check' value='Check'/>
<div></div>
CSS
.up-down {
color: red;
font-weight: bold;
}
JavaScript
var div = $("div");
log("---------------------------------------------------------");
$("input[type='button']").click(function() {
var number = parseFloat($("input[name='number']").val());
var round = parseFloat($("input[name='round']").val());
var dp = parseFloat($("input[name='dp']").val());
if (!isNaN(number) && !isNaN(round) && !isNaN(dp)) {
var nn = roundInterval(number, round, dp, "up");
log("<br/>Rounding: " + numberToString(number, dp, true) +
" using: " + round +
"/" + "<span class='up-down'>Up</span>" +
" as: " + numberToString(nn, dp, true));
var nn = roundInterval(number, round, dp, "down");
log("<br/>Rounding: " + numberToString(number, dp, true) +
" using: " + round +
"/" + "<span class='up-down'>Down</span>" +
" as: " + numberToString(nn, dp, true));
log("---------------------------------------------------------");
}
});
$("input[type='button']").trigger("click");
function roundInterval(number, interval, round, roundType) {
if (round > 9) {
round = 9;
}
else if (round < 0) {
round = 0;
}
number = number > 999999999999999 ? 999999999999999 : number;
var isMinus = false;
if (number < 0) {
isMinus = true;
number = number * -1;
}
number = parseFloat(numberToString(number, round));
interval = parseFloat(numberToString(interval, round));
var multiplier = roundType == 'up' ? Math.ceil(number / interval) : Math.floor(number / interval);
log("Multiplier: " + multiplier);
log("As: " + number + "/" + interval + " :: " + (number/interval));
number = multiplier * interval;
number = multiplier * interval;
if (isMinus) {
number = number * -1;
}
return parseFloat(number.toFixed(round));
}
function numberToString(number, dp, asDp) {
var format = '#';
if (asDp...