關於JS數字精度丟失的解決辦法

2021-09-29 20:03:40 字數 1651 閱讀 1911

關於數字計算的解決方案

var

operationnumber

=function

(arg1,arg2,operator)

// 除以0

if(operator===

'/'&&

number

(arg2)

===0

)// 和0相乘

if(operator===

'*'&&

number

(arg2)

===0

)// 相等兩個數字相減if(

(arg1===arg2||

number

(arg1)

===number

(arg2)

)&&operator===

'-')

var r1,

//小數字數

r2,//小數字數

max,_r1,_r2;

trycatch(e

)try

catch(e

) max = math.

max(r1, r2)

_r1 = max-r1;

_r2 = max-r2;

if(_r1!==0)

//arg1小數字少,少幾位數,則用0補齊

if(_r2!==0)

//arg2小數字少

arg1 =

number

(arg1.

tostring()

.replace

('.',''

))//去掉小數點

arg2 =

number

(arg2.

tostring()

.replace

('.',''

))//去掉小數點

var r3 = operator===

'*'?

(max*2)

:(operator===

'/'?

0:max)

;//要去掉的位數

var newnum =

eval

(arg1+operator+arg2);if

(r3!==0)

nstr = nstr.

replace

(new

regexp

('(\\\d)$'),

'.$1');

if(newnum<0)

newnum = nstr*1;

}return newnum;

}//加法

number.prototype.

myadd

=function

(arg2)

//減法

number.prototype.

mysub

=function

(arg2)

//乘法

number.prototype.

mymul

=function

(arg2)

// 除法

number.prototype.

mydiv

=function

(arg2)

獲取的id過長導致精度丟失問題的解決辦法

2.0 匯入 json bigint import jsonbig from json bigint 3.0 使用 json bigint jsonbig.parse xx 說明 1.0 由於現在伺服器返回的資料是交給 axios 的 2.0 axiso 為了能夠讓資料可以交給 js 直接訪問,會對...

硬碟丟失問題的解決辦法

我用的是windows xp系統,剛才正在vmware的linux虛擬機器系統裡寫著程式呢。突然間,機器僵死,windows工作列的右下角提示硬碟 延緩失敗 趕緊重啟系統,花了好幾分鐘才進入系統,這時候發現第二塊硬碟掛載的 f 盤不見了。內網提交it故障,指望著it同事趕緊幫忙解決。幾分鐘過去了,人...

Session丟失的解決辦法小結

最近在做asp.net專案時,測試 老是取不出session中的值,在網上搜尋了一下,找到一些解決方法,記錄在這裡。最後使用儲存在stateserver中的辦法解決了問題。sessionstate 的timeout 其主要原因有三種。一 有些殺病毒軟體會去掃瞄您的web.config檔案,那時ses...