DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS中toFixed()方法引起的問題如何解決
JS中toFixed()方法引起的問題如何解決
編輯:關於JavaScript     
最近發現JS當中toFixed()方法存在一些問題,采用原生的Number對象的原型對象上的toFixed()方法時,規則並不是所謂的“四捨五入”或者是“四捨六入五成雙”,所謂“四捨六入五成雙”,在百度百科上給的解釋是:也即“4捨6入5湊偶”這裡“四”是指≤4 時捨去,"六"是指≥6時進上,"五"指的是根據5後面的數字來定,當5後有數時,捨5入1;當5後無有效數字時,需要分兩種情況來講:①5前為奇數,捨5入1;②5前為偶數,捨5不進。(0是最小的偶數) 。百度百科上涉及的幾個例子在實際情況下確實成立,但不科學,並不能覆蓋所有的情況。

測試浏覽器:屌絲浏覽器IE6以及高級屌絲浏覽器IE78和所有現代主流浏覽器包括IE9、IE10、FF、chrome、opera、safari。(注:在使用IE10的類似firebug的開發工具時,采用兼容IE低版本浏覽器模式時的測試結果跟使用原生低版本IE浏覽器的測試結果不一致)

在浮點數末尾≤4或者≥6的情況下的捨入沒有爭議,但當末尾正好等於5的情況下可謂混亂之極。
總結:眾所周知,遵循IEEE754數值格式的語言的浮點計算會出現精度損耗的通病,ES也並非獨此一家,因此盡量不要進行某個特定浮點數值的測試,如:0.1+0.2;
解決方案:重寫Number.prototype.toFixed()方法:
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved