Skip to content

Latest commit

 

History

History
12 lines (12 loc) · 1.82 KB

shisujia.md

File metadata and controls

12 lines (12 loc) · 1.82 KB

相对来讲对浮点数更感兴趣,所以先看了浮点数部分。书中有讲到,由于浮点数的表示方法限制了浮点数的范围和精度,所以浮点运算只能近似地表示实数运算,在书中也看到一些案例,很多因为浮点数使用不当,造成了严重的损失。 在我们的工作中,也同样需要非常小心的使用浮点数,为了满足自己的要求,我们经常要对浮点数进行一些处理。作为新人,也简单回顾和总结下自己工作后在浮点数方面遇到的一些问题

  1. 涉及到资金的业务,一般情况下我们会以分为最小单位,也会有大量的金额计算,在这个过程中要尽量避免使用浮点数,确保数据的准确性,否则可能就会产生资损问题;
  2. 前端JS语言存在一些缺陷,在进行浮点数相乘的运算时,会导致失去精度,需要对浮点数相乘的逻辑进行特殊处理;
  3. JS代码,在进行浮点数比较时,避免使用等号,例如: if (0.3 - 0.1 != 0.2) { console.log(0.3 - 0.1); // 将输出 0.19999999999999998 }
  4. 在我们的舍入运算中,书中提到了四种方法,是向偶数舍入,向零舍入、向上舍入和向下舍入,除此之外,在实际中曾经还遇到过一种四舍六入五成双的舍入方式,但对于他存在的场景还不是很了解 当时遇到的时候只是简单了解一些,看书到这里的时候又仔细查询了一下,大概是这样的: 如果小数点最后一位是 5,需要判断前一位,如果 5 的前一位为奇数,舍去 5,但是要进 1,凑成偶数,例如:3.135,5 的前一位是 3,为奇数,所以进位,凑成 3.14 如果5的前一位为偶数,舍去 5,但是不进位,仍保持偶数,例如:3.125,5 的前一位是 2 ,为偶数,所以舍 5 不进位,保持 3.12