首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

为什么(2.55).toFixed(1)等于2.5?

正文从这里开始~~ 上次遇到了一个奇怪的问题:JS的(2.55).toFixed(1)输出是2.5,而不是四舍五入的2.6,这是为什么呢? 进一步观察: ?...这可能是因为V8里面对JS数据的表示都是继承于根类Object的(注意这里的Object不是JS的Object,JS的Object对应的是V8的JSObject),这样可以做一些通用的处理。...每得到一个个位数,就除以10,相当十进制里面右移一位,然后继续处理下一个个位数,不断地把它放到char数组里面(注意C++里面的整型相除是会把小数舍去的,不会像JS那样)。..._toFixed = Number.prototype.toFixed;}Number.prototype.toFixed = function(n) { return (this + 3e-16...这样处理之后,toFixed就正常了: ?

1.2K20

JS中对数字(含有小数的)进行相乘后,数值不正确的问题

昨晚测试人员测试的时候,偶然遇到了个小数相乘的问题,后来找了一下博客,才发现原来是JS浮点运算的bug,故在此记录了一下,避免我忘记。...然后我去看了前台的js代码,发现展示的金额确实没问题,但是在订单提交的时候出了问题。 image.png image.png 这样直接算出来的确实是有问题的。...你该知道计算机只认识0和1吧 具体的就是浮点精准度的问题 float 精确到小数点后7位 double 精确到小数点后15位 浮点运算的精度问题,所以代码里使用 parseFloat(65.32 * 100).toFixed...() 或 (65.32 * 100).toFixed() 进行取整 image.png 特此记录一下昨晚被烦了一晚上的问题(微笑.jpg) Copyright: 采用 知识共享署名4.0 国际许可协议进行许可...Links: https://lixj.fun/archives/js中对数字含有小数的进行相乘后数值不正确问题

2.1K20

只会写js而不会排bug的人,做不了好前端

定义有很多,在我这至少包括能写js能排错。有些人因为面试的次数多了,什么样的面试题都见过,成了面霸成了面试小能手。...js面试题写的666,面试谈话也很ok,但实际的开发经历不多,所以他们的短板在于实际工作中的疑难杂症的排除经验。 为什么会有些同学过不了试用期呢?...这个看到是指页面的不正常,要么是dom不正常,要么是js报错,要么是数据有问题,基本上就在这三个方面之内。...第3,看看这个bug,是js引起的,还是data引起的?这是在确定问题是谁的责任。 第4,如果是js引起的,那么要在bug出现的前后不同位置,分别打上console.log来查看打印信息进行调试。...//////// bug多种多样,所以只能写如何解决它们的策略。可能许多同学更习惯的是“针对具体的bug,然后直接给出解决方法”,但很可惜这种银弹式的答案是不存在的。

1K80

Bug之路-串包Bug

Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。...串包Bug现场 前置故障Redis超时 由于某个系统大量的hget、hset操作将Redis拖垮,通过监控发现Redis的CPU和IO有大量的尖刺,CPU示意图下图所示: ?...Bug复盘 此次Bug是由Redis本身Server负载太高超时引起的。Bug的现象是通过Jedis去取对应的Key值,得不到预期的结果,简而言之包乱了,串包了。...缩小Bug范围 首先:Redis是全球久经考验的系统,这样的串包不应该是Redis的问题。 第二:Redis刷新了key后Bug依然存在,而业务系统重启了之后Okay。...Bug推理 笔者意识到,之所以串包可能是由于jedisClient里面可能有残余的数据,导致读取的时候读取到此数据,从而造成串包的现象。

1.3K10

彻底搞懂Javascript 浮点数

前言 前段时间, 在群里跟 Peter 说到JS的浮点数问题。 他问我, 为什么 0.1 + 0.2 !== 0.3, 而 0.05 + 0.25 === 0.3 ?...toFixed 是小数点后指定位数取整,从小数点开始数起。 两者都能对多余数字做凑整处理,也有些人用 toFixed 来做四舍五入,但一定要知道它是有 Bug 的。...如:1.005.toFixed(2) 返回的是 1.00 而不是 1.01。 原因:1.005 实际对应的数字是 1.00499999999999989,在四舍五入时全部被舍去!...例如本文最初遇到的BUG:0.57 * 100 === 56.99999999999999 const value = Math.round(0.57 * 100); 而我们不太确定精度的浮点数运算时,...当然已经有成熟的工具库可以使用了, 例如Math.js, BigDecimal.js, number-precision等等. 能读到这里,说明你非常有耐心,那我就再放个福利吧。

1.5K10

Bug之路-串包Bug

笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少踩点坑。...串包Bug现场 前置故障Redis超时 由于某个系统大量的hget、hset操作将Redis拖垮,通过监控发现Redis的CPU和IO有大量的尖刺,CPU示意图下图所示: CPU达到了100%,导致很多...Bug复盘 此次Bug是由Redis本身Server负载太高超时引起的。Bug的现象是通过Jedis去取对应的Key值,得不到预期的结果,简而言之包乱了,串包了。...缩小Bug范围 首先:Redis是全球久经考验的系统,这样的串包不应该是Redis的问题。 第二:Redis刷新了key后Bug依然存在,而业务系统重启了之后Okay。...Bug推理 笔者意识到,之所以串包可能是由于jedisClient里面可能有残余的数据,导致读取的时候读取到此数据,从而造成串包的现象。

69310
领券