ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 1.41 kB
JavaScript
var MathUtils={signum:function(num){var n=num;if("string"==typeof num)n=parseInt(num,10);else if("number"!=typeof num)return 1;return n<0?-1:1},floor:function(num){return Math.floor(num)},ceiling:function(num){return Math.ceil(num)},down:function(num){return num<0?Math.ceil(num):Math.floor(num)},up:function(num){return num<0?Math.floor(num):Math.ceil(num)},halfup:function(num){return num<0?Math.ceil(num-.5):Math.floor(num+.5)},halfdown:function(num){return num<0?Math.floor(num+.5):Math.ceil(num-.5)},halfeven:function(num){return Math.floor(num)%2==0?Math.ceil(num-.5):Math.floor(num+.5)},halfodd:function(num){return Math.floor(num)%2!=0?Math.ceil(num-.5):Math.floor(num+.5)},mod:function(dividend,modulus){if(0==modulus)return 0;var x=dividend%modulus;return x<0?x+modulus:x},amod:function(dividend,modulus){if(0==modulus)return 0;var x=dividend%modulus;return x<=0?x+modulus:x},shiftDecimal:function(number,precision){var numArray=(""+number).split("e");return+(numArray[0]+"e"+(numArray[1]?+numArray[1]+precision:precision))},log10:function(num){return"function"==typeof Math.log10?Math.log10(num):Math.log(num)/Math.LN10},significant:function(number,digits,round){if(digits<1||0===number)return number;var rnd=round||Math.round,factor=-Math.floor(MathUtils.log10(Math.abs(number)))+digits-1;return MathUtils.shiftDecimal(rnd(MathUtils.shiftDecimal(number,factor)),-factor)}};module.exports=MathUtils;