js保留两位小数方法总结

  最近在做结算系统,经常需要用到金额保留两位小数,刚开始我一直用的是Angular中的过滤器number |2,但是,这无法满足我的需求。问题是,当用户离开文本框时,我需要将用户输入的内容转换成保留两位小数的格式,我想了好久,没有想出来,然后我试了toFixed()方法,这个方法也不可行,因为它将数据转换成了字符串,传给后台是错的。然后,我就找了其他方法。现在刚好有空,所以就把相关保留两位小数的方法总结了一下,不同的场景用不同的方法,即用即取。

一、四舍五入相关

1、toFixed()方法

需注意,保留两位小数,将数值类型的数据改变成了字符串类型

1 // 1.四舍五入
2         var num =2.446242342;
3         num = num.toFixed(2);
4         console.log(num); //2.45
5         console.log(typeof num); // string

2、Math.floor(),不四舍五入 ,向下取整

注意,不改变数据类型

1 // 2.不四舍五入 向下取整
2         num = Math.floor(num * 100) / 100;
3         console.log(num); //2.44
4         console.log(typeof num); // number

3、字符串匹配

注意,先将数据转换为字符串,最后再转为数值类型

1 // 3.不四舍五入 字符串匹配再转换
2         num = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
3         console.log(num); //2.44
4         console.log(typeof num); // number

4、四舍五入保留2位小数(若第二位小数为0,则保留一位小数)

注意,数据类型不变

 1 //4.四舍五入保留2位小数(若第二位小数为0,则保留一位小数)  2         function keepTwoDecimal(num) {  3              var result = parseFloat(num);  4              if (isNaN(result)) {  5                  alert('传递参数错误,请检查!');  6                  return false;  7              }  8              result = Math.round(num * 100) / 100;  9              return result;
10         };
11          keepTwoDecimal(num);
12          console.log(num); //2.44
13          console.log(typeof num); //number

5、四舍五入保留2位小数(不够位数,则用0替补)

注意,数据类型变为字符串类型

 1 //5.四舍五入保留2位小数(不够位数,则用0替补)  2         function keepTwoDecimalFull(num) {  3              var result = parseFloat(num);  4              if (isNaN(result)) {  5                  alert('传递参数错误,请检查!');  6                  return false;  7              }  8              result = Math.round(num * 100) / 100;  9              var s_x = result.toString(); //将数字转换为字符串
10
11              var pos_decimal = s_x.indexOf('.'); //小数点的索引值
12
13
14              // 当整数时,pos_decimal=-1 自动补0
15              if (pos_decimal < 0) {
16                  pos_decimal = s_x.length;
17                  s_x += '.';
18              }
19
20              // 当数字的长度< 小数点索引+2时,补0
21              while (s_x.length <= pos_decimal + 2) {
22                  s_x += '0';
23              }
24              return s_x;
25         }
26
27          console.log(keepTwoDecimalFull(120.5)); //120.50
28          console.log(typeof keepTwoDecimalFull(120.5)); //string
29          console.log(keepTwoDecimalFull(2.446242342)); //2.45
30          console.log(typeof keepTwoDecimalFull(2.446242342)); //string

二、浮点数保留两位小数

1、将浮点数四舍五入,取小数点后2位

注意,数据类型不变

 1 //浮点数保留两位小数   2           //1.功能:将浮点数四舍五入,取小数点后2位   3           function toDecimal(x) {   4            var f = parseFloat(x);   5            if (isNaN(f)) {   6             return;   7            }   8            f = Math.round(x*100)/100;   9            return f;
10           }
11           console.log(toDecimal(3.1465926)); // 3.15
12           console.log(typeof toDecimal(3.1415926)); //number

2、强制保留2位小数,如:2,会在2后面补上00.即2.00

注意,数据类型变为字符串类型

 1 //2.强制保留2位小数,如:2,会在2后面补上00.即2.00   2           function toDecimal2(x) {   3            var f = parseFloat(x);   4            if (isNaN(f)) {   5             return false;   6            }   7            var f = Math.round(x*100)/100;   8            var s = f.toString();   9            var rs = s.indexOf('.');
10            if (rs < 0) {
11             rs = s.length;
12             s += '.';
13            }
14            while (s.length <= rs + 2) {
15             s += '0';
16            }
17            return s;
18           }
19           console.log(toDecimal2(3.1)); // 3.10
20           console.log(typeof toDecimal2(3.1415926)); //string

3、保留两位小数 浮点数四舍五入 位数不够 不补0

注意,数据类型不变

1 // 3.保留两位小数 浮点数四舍五入 位数不够 不补0
2           function fomatFloat(src,pos){
3             return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
4           }
5            console.log(fomatFloat(3.12645,2)); // 3.13
6           console.log(typeof fomatFloat(3.1415926)); //number

以上就是常用的js保留两位小数的方法,希望对大家有帮助!

js保留两位小数方法总结相关推荐

  1. js保留两位小数方法

    一."四舍五入"算法 // 1.四舍五入的情况var num = 2.446245;// toFixed() 方法可把 Number 四舍五入为指定小数位数的数字.num = nu ...

  2. js保留两位小数的方法

    js保留两位小数的方法 js保留两位小数的方法如下 1.toFixed()方法 需注意,保留两位小数,将数值类型的数据改变成了字符串类型 2.Math.floor(),不四舍五入 ,向下取整 注意,不 ...

  3. jq设置保留两位小数_js保留两位小数方法总结

    本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一.我们首先从经典的"四舍五入"算法讲起 1.四舍五入的情 ...

  4. 前端保留两位有效数字_js保留两位小数方法总结

    本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一.我们首先从经典的"四舍五入"算法讲起 1.四舍五入的情 ...

  5. html保留两位小数php,JS保留两位小数输入数校验代码

    这次给大家带来JS保留两位小数输入数校验代码,JS保留两位小数输入数校验的注意事项有哪些,下面就是实战案例,一起来看一下. 输入input 的格式校验:$(function(){ var data = ...

  6. js保留两位小数、取整、四舍五入

    vue.js保留两位小数.取整.四舍五入 保留小数点后两位的四种方法 小数取整 四舍五入 这篇文章适合学习js且又不知道如何保留小数点后两位的友友们阅读哦~ 想讨论更多编程话题 加入qq群聊:1090 ...

  7. python 保留两位小数方法

    参考文章:python 保留两位小数方法 保留两位小数,并做四舍五入处理 方法一:使用字符串格式化 a = 12.345 print("%.2f" % a)# 12.35 方法二: ...

  8. js保留2位小数(js保留两位小数正则)

    PHP如何保留2位小数 要分2种情况.1.数值不变,只在输出时保留2位小数.echosprintf('%.2f',3.1415);2.数值上保留2位echoround(3.1415,2); PHP如何 ...

  9. js保留两位小数的函数_使用率低但功能强大的6个Excel函数公式应用技巧解读!...

    在Excel函数公式中,有部分函数的使用率是比较低的,但是其功能也是非常强大的. 一.Median函数. 功能:返回一组数的中值.中值就是一组数的中间数值,如果参数包含的数值是偶数,Median函数将 ...

最新文章

  1. 15 个让新手爱不释手的 Python 高级库
  2. 图像检索:拓展查询(Query Expansion)
  3. 2020年AI领域有哪些让人惊艳的研究?
  4. apache目录 vscode_[PHP] php, apache, VS Code安装与配置
  5. Linux常用命令(第二版) --权限管理命令
  6. Keil(MDK-ARM-STM32)系列教程(三)工程目标选项配置(Ⅰ)
  7. TensorFlow 教程 --教程--2.7字词的向量表示
  8. Android开发相关操作
  9. 编写可维护的javascript代码--- 2015.11.21(基本格式化)
  10. poj 2833 The Average(堆)
  11. 透过顶级机构Q2持仓报告看美股不同板块的行情
  12. java实现大文件切割分片
  13. 2.应用Android的UI框架
  14. 微信公众号网页分享功能开发
  15. 海康服务器系统装不上,ivms-4200客户端登入不了云服务器
  16. 4G浏览器 随机遇而生
  17. pta——出生年,查验身份证(c语言)
  18. 【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法
  19. 大数据之“用户行为分析
  20. php同学录网站设计_php校友录网站设计

热门文章

  1. 第二届八一杯网络大学生数学竞赛试题
  2. echarts地图库下载安装
  3. Emergency Call 分析
  4. MFC重写CView的getDocument()函数没有实现多态,只是静态联编
  5. 商务邮箱e-mail地址格式是什么意思?解读mail使用场景及功能
  6. 不同系统版本ISO镜像地址
  7. 2021-05-08 Web前端编程实验(八)
  8. 视音频编解码基本术语及解释MediaInfo
  9. 智慧医疗——北京融威众邦
  10. uniapp | 搜索页 显示或清除历史记录 | 代码分析