栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

截断(不舍入)JavaScript中的十进制数字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

截断(不舍入)JavaScript中的十进制数字

更新

因此,无论如何,四舍五入的bug总是会困扰着您,无论您如何努力补偿它们。因此,应该通过精确地用十进制表示法来解决该问题。

Number.prototype.toFixedDown = function(digits) {    var re = new RegExp("(\d+\.\d{" + digits + "})(\d)"),        m = this.toString().match(re);    return m ? parseFloat(m[1]) : this.valueOf();};[   5.467.toFixedDown(2),    985.943.toFixedDown(2),    17.56.toFixedDown(2),    (0).toFixedDown(1),    1.11.toFixedDown(1) + 22];// [5.46, 985.94, 17.56, 0, 23.1]

旧的易出错的解决方案基于其他人的编译:

Number.prototype.toFixedDown = function(digits) {  var n = this - Math.pow(10, -digits)/2;  n += n / Math.pow(2, 53); // added 1360765523: 17.56.toFixedDown(2) === "17.56"  return n.toFixed(digits);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号