js大数计算之展示
2024-08-28 09:40:40
<!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>
最新文章
- Eclipse搭建c环境(CDT)二
- Java中的反射和注解
- ZK listbox 两种分页使用及比较
- 《C与指针》第十五章练习
- Linux光纖卡配置,磁盤掛載,多路徑設置
- input上传图片预览
- android开发分辨率问题解决方案
- moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)
- PHP函数积累
- [置顶] Android源码分析-点击事件派发机制
- C++11 (多线程)并发编程总结
- 2018-08-13 Head First OO分析设计一书略读与例子中文化
- 在线流媒体nginx/Windows解决方案
- linux下的标准输出和错误输出重定向
- 在WSL中使用Window10中的virtualenv环境
- mac忘记操作密码
- 关于NSString的@";";和nil时的判断方法
- 红黑树的实现——c++
- Mac 10.12原生方法对NTFS分区进行读写的配置
- Python3 小工具-ARP欺骗
热门文章
- SpringBoot之封装json对象返回json数据
- Java 8 Lambda表达式学习和理解
- java大文件下载+断点续传
- 【web 安全测试Tools】BurpSuite 1.7.32及注册机【无后门版】
- 【C#设计模式3】工厂方法模式
- 在Electron运行的子页面无法访问window.opener解决方案
- C/C++.控制台输入(cin/getchar)
- 在使用pandas 0.23.4对日期进行分组排序时报错
- 学习笔记:(转)Centos7.6安装Oracle11gR2
- 图说socket与系统调用代码架构