• JavaScript 保留两位小数


    摘要

    在开发中展示点赞数时,当数量级超过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);

    电脑刺绣绣花厂 http://www.szhdn.com 广州品牌设计公司https://www.houdianzi.com

    终极完美解决小数保留位数精度方案

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

    // 解决精度方案
    var num5 = 8.54342345;
    var numStr = num5.toString();
    var idx = numStr.indexOf('.');
    var res = Number(numStr.slice(0, idx + 3));
    console.log('res=',res);
  • 相关阅读:
    PHP之html~01
    常用的html标签大全
    PHP从PHP5.0到PHP7.1的性能全评测
    PHP的性能演进(从PHP5.0到PHP7.1的性能全评测)
    Unix及类Unix系统文本编辑器的介绍
    keychain 的学习
    开发中遇到的一些问题
    IOS 照片浏览器总结(思想步骤)
    IOS 应用管理(九宫格) 总结笔记
    IOS 集成友盟分享
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13821682.html
Copyright © 2020-2023  润新知