UNPKG

ilib

Version:

iLib is a cross-engine library of internationalization (i18n) classes written in pure JS

1 lines 1.41 kB
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){return 0===modulus?0:(dividend=dividend%modulus)<0?dividend+modulus:dividend},amod:function(dividend,modulus){return 0===modulus?0:(dividend=dividend%modulus)<=0?dividend+modulus:dividend},shiftDecimal:function shift(number,precision){number=(""+number).split("e");return+(number[0]+"e"+(number[1]?+number[1]+precision:precision))},log10:function(num){return"function"==typeof Math.log10?Math.log10(num):Math.log(num)/Math.LN10},significant:function(number,digits,round){return digits<1||0===number?number:(round=round||Math.round,digits=-Math.floor(MathUtils.log10(Math.abs(number)))+digits-1,MathUtils.shiftDecimal(round(MathUtils.shiftDecimal(number,digits)),-digits))}};module.exports=MathUtils;