JavaScript 保留两位小数

摘要 在开发中展示点赞数时,当数目级跨越10000后,需要使用加倍简练的小数式去展现数目(例如1.22万)。下面就给人人分享数目小数式后保留两位小数的实现方式。   四色五入 使用toFixed()方式...

摘要

在开发中展示点赞数时,当数目级跨越10000后,需要使用加倍简练的小数式去展现数目(例如1.22万)。下面就给人人分享数目小数式后保留两位小数的实现方式。

 

四色五入

使用toFixed()方式处置小数的四色五入,运行示例如下:

// 四色五入
var num =2.2354234234;
num = num.toFixed(2);
console.log('num=', num);


 不四色五入 

不四色五入有两种方案,一种是Math.floor()方式,一种是正则匹配。运行示例如下:

·Math.floor():先将小数变整数,然后再保留小数位数。

// Math.floor()
var num2 = Math.floor(2.2344234234 * 100) / 100;
console.log('num2=',num2);

·正则匹配:先将小数转为字符串,再使用正则匹配输出保留小数位数。

// 正则匹配
var num3 = Number(6.2344234234.toString().match(/^\d+(?:\.\d{0,2})?/));
console.log('num3=',num3);

  

Math.floor()方式存在精度误差问题 

Math.floor()方式容易泛起精度误差问题,例如:小数8.54保留两位小数。详细bug运行示例如下:

// 精度误差示例
var num4 = Math.floor(8.54*100) / 100;
console.log('现实值:8.54');
console.log('Math.floor打印的值',num4);


最终完善解决小数保留位数精度方案

先将数字(小数)转换为字符串,然后再举行截取,最后转回数字(小数),完善解决保留小数位数精度问题。

// 解决精度方案
var num5 = 8.54342345;
var numStr = num5.toString();
var idx = numStr.indexOf('.');
var res = Number(numStr.slice(0, idx + 3));
console.log('res=',res);
来自:https://www.cnblogs.com/BlueBerryCode/p/12802108.html


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入

3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/8780

  • 发表于 2021-02-11 16:57
  • 阅读 ( 198 )
  • 分类:互联网

0 条评论

请先 登录 后评论
锄禾魏宏
锄禾魏宏

726 篇文章

你可能感兴趣的文章

相关问题