當前位置:編程學習大全網 - 編程語言 - 壹個js做相加運算的問題,但是相加之後出現問題。

壹個js做相加運算的問題,但是相加之後出現問題。

JavaScript小數在做四則運算時,精度會丟失

那麽妳需要寫個函數來處理這個情況,比如下面幾個有用的函數:

//說明:javascript的加法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的加法結果。

//調用:accAdd(arg1,arg2)

//返回值:arg1加上arg2的精確結果

function accAdd(arg1, arg2) {

var r1,

r2,

m;

try {

r1 = arg1.toString().split(".")[1].length

} catch(e) {

r1 = 0

}

try {

r2 = arg2.toString().split(".")[1].length

} catch(e) {

r2 = 0

}

m = Math.pow(10, Math.max(r1, r2))

return (arg1 * m + arg2 * m) / m

}

//給Number類型增加壹個add方法,調用起來更加方便。

Number.prototype.add = function(arg) {

return accAdd(arg, this);

}

//說明:javascript的加法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的加法結果。

//調用:accAdd(arg1,arg2)

//返回值:arg1加上arg2的精確結果

function accAdd(arg1, arg2) {

var r1,

r2,

m;

try {

r1 = arg1.toString().split(".")[1].length

} catch(e) {

r1 = 0

}

try {

r2 = arg2.toString().split(".")[1].length

} catch(e) {

r2 = 0

}

m = Math.pow(10, Math.max(r1, r2))

return (arg1 * m + arg2 * m) / m

}

//給Number類型增加壹個add方法,調用起來更加方便。

Number.prototype.add = function(arg) {

return accAdd(arg, this);

}

減法

Js代碼

[code]

//說明:javascript的減法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的減法結果。

//調用:accSub(arg1,arg2)

//返回值:arg1減上arg2的精確結果

function accSub(arg1, arg2) {

return accAdd(arg1, -arg2);

}

//給Number類型增加壹個sub方法,調用起來更加方便。

Number.prototype.sub = function(arg) {

return accSub(this, arg);

}

//說明:javascript的減法結果會有誤差,在兩個浮點數相加的時候會比較明顯。這個函數返回較為精確的減法結果。

//調用:accSub(arg1,arg2)

//返回值:arg1減上arg2的精確結果

function accSub(arg1, arg2) {

return accAdd(arg1, -arg2);

}

  • 上一篇:壹級結構師考試內容
  • 下一篇:吊扇燈十大名牌排名
  • copyright 2024編程學習大全網