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 相关文章推荐
textContent在Firefox下与innerText等效的属性
May 12 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
Apr 16 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
May 06 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
jQuery中页面返回顶部的方法总结
Dec 30 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 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
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
javascript的this关键字详解
2019/05/20 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Django 大文件下载实现过程解析
2019/08/01 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
Python with标签使用方法解析
2020/01/17 Python
python collections模块的使用
2020/10/16 Python
Python request post上传文件常见要点
2020/11/20 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
学术会议邀请函范文
2014/01/22 职场文书
利群广告词
2014/03/20 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
体育教师求职信
2014/06/30 职场文书