javascript數值精確計算

2021-06-19 22:52:20 字數 1624 閱讀 4428

/**

* the function for decimal's add, subtract, multiplication, division. not get the float result.

* and add the function to number's prototype, so you can use it as:

* var result = dcmadd(0.2,0.1); //or var result = (0.2).add(0.1);

* */

function floatadd(arg1, arg2) catch (e)

try catch (e)

n = math.max(r1, r2); // (不加這個還是有問題,如68.04+16.17,因為在下面的arg1*m時會出現浮點數,

m = math.pow(10, n);

// 當然也可以用dcmmul(arg1,m)來解決,但考慮到效率還是加這個吧。)

return ((arg1 * m + arg2 * m) / m).tofixed(n);

}function floatsbt(arg1, arg2) catch (e)

try catch (e)

n = math.max(r1, r2);// (不加這個還是有問題,如68.04-16.17)

m = math.pow(10, n);

return ((arg1 * m - arg2 * m) / m).tofixed(n);

}function floatmul(arg1, arg2) catch (e)

try catch (e)

return number(s1.replace(".", "")) * number(s2.replace(".", "")) / math.pow(10, m);

}function floatdiv(arg1, arg2) catch (e)

try catch (e)

r1 = number(arg1.tostring().replace(".", ""));

r2 = number(arg2.tostring().replace(".", ""));

return (r1 / r2) * math.pow(10, t2 - t1);

};number.prototype.succ = function() ,

number.prototype.add = function(arg) ,

number.prototype.sub = function(arg) ,

number.prototype.mul = function(arg) ,

number.prototype.div = function(arg)

number.prototype.succ = function() ,

string.prototype.add = function(arg) ,

string.prototype.sub = function(arg) ,

string.prototype.mul = function(arg) ,

string.prototype.div = function(arg)

JavaScript數值轉換

有三個函式可以將引數轉化為數值 number parseint 和parsefloat number 是轉型函式,可以運用於任何型別 另外兩個函式則是專門用於將字串轉化為數值。number 1 字串只包含數字的情況 可帶正負號 將其轉化為十進位制數值,前面的0將被忽略。2 如果是有效浮點格式,則將轉...

JavaScript 數值函式

函式名 函式意義 math.abs 1 絕對值math.ceil 3.2 向上取整 math.floor 3.2 向下取整 math.max 2,5,1 最大值math.min 2,5,1 最小值math.pow 3,2 指數運算 math.sqrt 9 平方根math.log 10 自然對數 ma...

javascript 精確加減乘除

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