小数点精度的问题–函数封装
解决方案
1.加减法可以用参数乘以1000再用结果除以1000。
乘除法可以用参数分别*100进行计算后在除以10000
2.使用toFixed()方法,效率貌似没有第一种高,这里返回的值一定有两位小数,要么后台用double接收,要么用parseInt()转换为整数parseInt((35.23*100).toFixed(2))。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
// console.log(.1+.2);
// console.log(2.14*5);
// console.log(.3-.1)
/**
* floatObj 包含加减乘除四个方法,能确保浮点数运算不丢失精度
*
* 我们知道计算机编程语言里浮点数计算会存在精度丢失问题(或称舍入误差),其根本原因是二进制和实现位数限制有些数无法有限表示
* 以下是十进制小数对应的二进制表示
* 0.1 >> 0.0001 1001 1001 1001…(1001无限循环)
* 0.2 >> 0.0011 0011 0011 0011…(0011无限循环)
* 计算机里每种数据类型的存储是一个有限宽度,比如 JavaScript 使用 64 位存储数字类型,因此超出的会舍去。舍