<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<script>
/*
数据展示类
当你拿到 1.4000000000000001 这样的数据要展示时, 建议使用 toPrecision 凑整并 parseFloat 转成数字后再显示, 如下: parseFloat(1.4000000000000001.toPrecision(12)) === 1.4 // True
封装成方法就是: function strip(num, precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
*/ console.log(1.42334546400000001.toPrecision(12));
console.log(parseFloat(1.42334546400000001.toPrecision(12))); /*数据展示
js大数解决方案
*/
function strip(num, precision = 12) {
return +parseFloat(num.toPrecision(precision));
} /*
数据运算类
对于运算类操作,如 + - * /,就不能使用 toPrecision 了。正确的做法是把小数转成整数后再运算。以加法为例:
//精确加法
function add(num1, num2) {
const num1Digits = (num1.toString().split('.')[1] || '').length;
const num2Digits = (num2.toString().split('.')[1] || '').length;
const baseNum = Math.pow(10, Math.max(num1Digits, num2Digits));
return (num1 * baseNum + num2 * baseNum) / baseNum;
}
*/
</script>
</head> <body>
</body> </html>

最新文章

  1. Eclipse搭建c环境(CDT)二
  2. Java中的反射和注解
  3. ZK listbox 两种分页使用及比较
  4. 《C与指针》第十五章练习
  5. Linux光纖卡配置,磁盤掛載,多路徑設置
  6. input上传图片预览
  7. android开发分辨率问题解决方案
  8. moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)
  9. PHP函数积累
  10. [置顶] Android源码分析-点击事件派发机制
  11. C++11 (多线程)并发编程总结
  12. 2018-08-13 Head First OO分析设计一书略读与例子中文化
  13. 在线流媒体nginx/Windows解决方案
  14. linux下的标准输出和错误输出重定向
  15. 在WSL中使用Window10中的virtualenv环境
  16. mac忘记操作密码
  17. 关于NSString的@&quot;&quot;和nil时的判断方法
  18. 红黑树的实现——c++
  19. Mac 10.12原生方法对NTFS分区进行读写的配置
  20. Python3 小工具-ARP欺骗

热门文章

  1. SpringBoot之封装json对象返回json数据
  2. Java 8 Lambda表达式学习和理解
  3. java大文件下载+断点续传
  4. 【web 安全测试Tools】BurpSuite 1.7.32及注册机【无后门版】
  5. 【C#设计模式3】工厂方法模式
  6. 在Electron运行的子页面无法访问window.opener解决方案
  7. C/C++.控制台输入(cin/getchar)
  8. 在使用pandas 0.23.4对日期进行分组排序时报错
  9. 学习笔记:(转)Centos7.6安装Oracle11gR2
  10. 图说socket与系统调用代码架构