idx-round
Version:
Stock price rounding library for IDX (Indonesia) stock market
33 lines (30 loc) • 955 B
JavaScript
;
var roundToFraction = function (number, fraction) {
var rounded = Math.round(number);
if (rounded % fraction !== 0) {
if (rounded % fraction > fraction / 2) {
rounded += fraction - (rounded % fraction);
} else {
rounded -= rounded % fraction;
}
}
return rounded;
};
/**
* Round price to nearest fraction
* Ref: http://market.bisnis.com/read/20160502/190/543637/bei-berlakukan-fraksi-harga-baru-mulai-hari-ini-simak-rincian-perubahannya
* @param price
*/
module.exports = function (price) {
if (price < 200) {
return roundToFraction(price, 1);
} else if (price < 500) {
return roundToFraction(price, 2);
} else if (price < 2000) {
return roundToFraction(price, 5);
} else if (price < 5000) {
return roundToFraction(price, 10);
} else {
return roundToFraction(price, 25);
}
};