JS加減乘除位移方法封裝

2021-08-21 09:14:20 字數 2836 閱讀 1073

常用加減乘除等方法彙總

直接上**,邏輯簡單,**如下:

加減乘除位移方法彙總

* 向右移動小數點 ,相當於乘10的_pointcount次冪

* @param _number 操作的數字

* @param _pointcount 向右移動的位數

* @returns 移動以後的數字(number型別)

*/var moveright = function (_number, _pointcount)

var flag = 1;

if (_number < 0)

var numstr = _number.tostring();

var strarr = numstr.split(".");

var rightstr = strarr.length > 1 ? strarr[1] : "";

//在不足移動的位數後補0;

if (rightstr.length < _pointcount)

rightstr = rightstr + addzero.join("");

}return number(strarr[0] + rightstr.substring(0, _pointcount) + "." + rightstr.substr(_pointcount)) * flag;

};/**

* 向左移動小數點,相當於_number除以10的_pointcount次冪

* @param _number 操作的數字

* @param _pointcount 向左移動的位數

* @returns 移動以後的數字(number型別)

*/var moveleft = function (_number, _pointcount)

var flag = 1;

if (_number < 0)

//number轉換為string ,方便後續操作。

var numstr = _number.tostring();

//按照小數點分隔字串,

var strarr = numstr.split(".");

var num = 0, zeroarr = ;

//生成移動位數+1的0 ,補到分隔後的第乙個字串中,相容0.***的情況。開頭多餘的零會在呼叫number方法時去掉。

while (num < _pointcount + 1)

var leftstr = zeroarr.join("") + strarr[0];

var leftarr = leftstr.split("")

//插入移動後的小數點。

leftarr.splice((leftstr.length - _pointcount), 0, '.');

var result = leftarr.join("");

//拼接原始值小數點後的數字

if (strarr.length > 1)

return number(result) * flag;

};/**

* 加法

* @param _num1

* @param _num2

* @param precision 精度

* @returns

*/var add = function (_num1, _num2, precision)

return moveleft(moveright(_num1, precision) + moveright(_num2, precision), precision)

};/**

* 減法

* @param minuend

* @param reduction

* @returns

*/var reduce = function (minuend, reduction, precision)

return moveleft(moveright(minuend, precision) - moveright(reduction, precision), precision)

};/**

* 乘法

* @param _num1

* @param _num2

* @returns

*/var multiplication = function (_num1, _num2, precision)

return moveleft(moveright(_num1, precision) * moveright(_num2, precision), precision * 2)

};/**

* 除法

* @param _num1 被除數

* @param _num2 除數

* @param precision 精度 整形,幾位小數

* @returns

*/var division = function (_num1, _num2, precision)

return moveright(_num1, precision) / moveright(_num2, precision);

};console.log(moveright(0.9999999,3));

console.log(moveleft(88888888888,2));

console.log(add(1.01,7.079,8));

console.log(reduce(8.01,1,2));

console.log(multiplication(1,8.88,2));

console.log(division(16,2,2))

js加減乘除

除法函式,用來得到精確的乘法結 function accdiv arg1,arg2 catch e trycatch e with math 乘法函式,用來得到精確的乘法結果 function accmul arg1,arg2 catch e trycatch e return number s1....

中加減乘除 晉朝成語 加減乘除

讀 音 ji ji n ch ng ch 釋 義 算術的四則運算,借指事物的消長變化。出 自 明 王九思 端正好 次韻贈邵晉夫歸隱 端的是太平人物,誰想道命兒中加減乘除。例句1.他們的第一台機器可以加減乘除。2.通過教她不同的錢的面額幫你的孩子學會加減乘除。3.阿拉巴馬州和密西西比州有差不多一半的孩...

JS 實現精確加減乘除

最近乙個專案中要使用 js 實現自動計算的功能,本以為只是實現簡單的加 減 乘 除就可以了,於是三下五除二做完了。正當我竊喜 進行一些浮點數運算時,計算結果都是讓我大跌眼鏡啊,那個值讓我哭笑不得,一長串的值,太牛了。我那個納悶啊!不過還好牛人多,給了我一解決方案,嘿嘿。問題基本上解決了,為了表示感覺...