js取float型小数点后两位数的方法


Posted in Javascript onJanuary 18, 2014

js取小数点后两位四种方法

以下我们将为大家介绍 JavaScript 保留两位小数的实现方法:
四舍五入
以下处理结果会四舍五入:

var num =2.446242342;
num = num.toFixed(2); // 输出结果为 2.45

不四舍五入
以下处理结果不会四舍五入:
第一种,先把小数边整数:

Math.floor(15.7784514000 * 100) / 100 
// 输出结果为 15.77

第二种,当作字符串,使用正则匹配:

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) 
// 输出结果为 15.77,不能用于整数如 10 必须写为10.0000

注意:如果是负数,请先转换为正数再计算,最后转回负数

javascript保留两位小数的实例:

<script type="text/javascript"> 
 //保留两位小数 
 //功能:将浮点数四舍五入,取小数点后2位 
 function toDecimal(x) { 
  var f = parseFloat(x); 
  if (isNaN(f)) { 
  return; 
  } 
  f = Math.round(x*100)/100; 
  return f; 
 } 
 
 
 //制保留2位小数,如:2,会在2后面补上00.即2.00 
 function toDecimal2(x) { 
  var f = parseFloat(x); 
  if (isNaN(f)) { 
  return false; 
  } 
  var f = Math.round(x*100)/100; 
  var s = f.toString(); 
  var rs = s.indexOf('.'); 
  if (rs < 0) { 
  rs = s.length; 
  s += '.'; 
  } 
  while (s.length <= rs + 2) { 
  s += '0'; 
  } 
  return s; 
 } 
  
 function fomatFloat(src,pos){ 
  return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos); 
 } 
 //四舍五入 
 alert("保留2位小数:" + toDecimal(3.14159267)); 
 alert("强制保留2位小数:" + toDecimal2(3.14159267)); 
 alert("保留2位小数:" + toDecimal(3.14559267)); 
 alert("强制保留2位小数:" + toDecimal2(3.15159267)); 
 alert("保留2位小数:" + fomatFloat(3.14559267, 2)); 
 alert("保留1位小数:" + fomatFloat(3.15159267, 1)); 
  
 //五舍六入 
 alert("保留2位小数:" + 1000.003.toFixed(2)); 
 alert("保留1位小数:" + 1000.08.toFixed(1)); 
 alert("保留1位小数:" + 1000.04.toFixed(1)); 
 alert("保留1位小数:" + 1000.05.toFixed(1)); 
  
 //科学计数 
 alert(3.1415.toExponential(2)); 
 alert(3.1455.toExponential(2)); 
 alert(3.1445.toExponential(2)); 
 alert(3.1465.toExponential(2)); 
 alert(3.1665.toExponential(1)); 
 //精确到n位,不含n位 
 alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 
 alert("精确到小数点第3位" + 3.1465.toPrecision(3)); 
 alert("精确到小数点第2位" + 3.1415.toPrecision(2)); 
 alert("精确到小数点第2位" + 3.1455.toPrecision(2)); 
 alert("精确到小数点第5位" + 3.141592679287.toPrecision(5)); 
 </script>

用Javascript取float型小数点后两位,例22.127456取成22.13,如何做?

1.丢弃小数部分,保留整数部分

parseInt(5/2)

2.向上取整,有小数就整数部分加1

Math.ceil(5/2)

3,四舍五入.

Math.round(5/2)

4,向下取整

Math.floor(5/2)

另类的方法

1. 最笨的办法

function get()

{

    var s = 22.127456 + "";

    var str = s.substring(0,s.indexOf(".") + 3);

    alert(str);

}

 

2. 正则表达式效果不错

<script type="text/javascript">

onload = function(){

    var a = "23.456322";

    var aNew;

    var re = /([0-9]+.[0-9]{2})[0-9]*/;

    aNew = a.replace(re,"$1");

    alert(aNew);

}

</script>

3. 他就比较聪明了.....

<script>

var num=22.127456;

alert( Math.round(num*100)/100);

</script>

4.会用新鲜东西的朋友....... 但是需要 IE5.5+才支持。

5.js保留2位小数(强制)

对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如:changeTwoDecimal(3.1),将返回3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数:

function changeTwoDecimal_f(x) {

    var f_x = parseFloat(x);

    if (isNaN(f_x)) {

        alert('function:changeTwoDecimal->parameter error');

        return false;

    }

    var f_x = Math.round(x * 100) / 100;

    var s_x = f_x.toString();

    var pos_decimal = s_x.indexOf('.');

    if (pos_decimal < 0) {

        pos_decimal = s_x.length;

        s_x += '.';

    }

    while (s_x.length <= pos_decimal + 2) {

        s_x += '0';

    }

    return s_x;

}

功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,
这个函数返回的是字符串的格式用法:changeTwoDecimal(3.1415926)返回3.14 changeTwoDecimal(3.1)返回3.10

Javascript 相关文章推荐
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
node.js中的url.resolve方法使用说明
Dec 10 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
加载 vue 远程代码的组件实例详解
Nov 20 Javascript
Nuxt.js实战详解
Jan 18 Javascript
关于vue面试题汇总
Mar 20 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
async/await优雅的错误处理方法总结
Jan 30 Javascript
Vue中props的详解
May 16 Javascript
Node登录权限验证token验证实现的方法示例
May 25 Javascript
js数组循环遍历数组内所有元素的方法
Jan 18 #Javascript
js使用eval解析json实例与注意事项分享
Jan 18 #Javascript
收集json解析的四种方法分享
Jan 17 #Javascript
javascript在子页面中函数无法调试问题解决方法
Jan 17 #Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 #Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 #Javascript
Jquery 获取对象的几种方式介绍
Jan 17 #Javascript
You might like
Php注入点构造代码
2008/06/14 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PDO::errorInfo讲解
2019/01/28 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
使用AOP改善javascript代码
2015/05/01 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python简单进程锁代码实例
2015/04/27 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
python实现弹窗祝福效果
2019/04/07 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
民生工程实施方案
2014/03/22 职场文书
效能监察建议书
2014/05/19 职场文书
教导主任个人总结
2015/03/03 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android