国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS中toFixed()方法引起的問題如何解決

2024-05-06 14:20:51
字體:
來源:轉載
供稿:網友
最近發現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()方法:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黄骅市| 丹凤县| 泊头市| 峨边| 临夏市| 修文县| 濮阳县| 高陵县| 中方县| 宜宾市| 西安市| 桓台县| 璧山县| 漳浦县| 张掖市| 海丰县| 肇州县| 西贡区| 且末县| 黎川县| 岚皋县| 垣曲县| 扬中市| 琼结县| 邮箱| 文化| 海南省| 安阳市| 宿迁市| 霍城县| 古浪县| 梅河口市| 勃利县| 会泽县| 高唐县| 阿克陶县| 汉中市| 马龙县| 巧家县| 宁乡县| 四会市|