亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于.toFixed()的重寫

關于.toFixed()的重寫

BIG陽 2018-10-17 11:14:51
最近發現JS當中toFixed()方法存在一些問題。采用toFixed()方法時,規則并不是標準的“四舍五入”。而且不同的瀏覽器會有不同的結果,所以為了滿足正確的運算,需要對toFixed重寫。在瀏覽了各大論壇后,有這么一種比較簡單的方法:<script>Number.prototype.toFixed = function (exponent) {      return parseInt(this * Math.pow(10, exponent) + 0.5) / Math.pow(10, exponent);  }</script>原理就不解釋了,來不及了。這個方法在正數情況下是可行的,但是對于負數還是會有偏差。例如:document.write((-0.050).toFixed(2));在Chrome下會輸出為-0.04;我覺得問題出現在+0.5那里,但是不知道咋改。請大神指點一二。另外,如果有更好的辦法,還請不吝賜教,謝謝。想了下……貌似這樣可以的:Number.prototype.toFixed = function (exponent) {      if(this>0){        return parseInt(this * Math.pow(10, exponent) + 0.5) / Math.pow(10, exponent);      }else{        return parseInt(this * Math.pow(10, exponent) - 0.5) / Math.pow(10, exponent);      }    }那么……還有更好的辦法嘛?
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這個方法有個問題,你輸入整數,30,300等發現輸出還是30,300,但是頁面展示肯定是30.00,300.00
當然只是展示的問題,但足以over.看了個別人的

(沒有驗證)


查看完整回答
反對 回復 2018-11-16
  • 1 回答
  • 0 關注
  • 809 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號