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 相关文章推荐
用于table内容排序
Jul 21 Javascript
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
js加入收藏夹代码(兼容ie/ff/op)
May 16 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
js数字计算 误差问题的快速解决方法
Feb 28 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
Aug 25 Javascript
layer.confirm取消按钮绑定事件的方法
Aug 17 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
Jul 19 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 高手之路(三)
2006/10/09 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
几种响应式文字详解
2017/05/19 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python的语言类型(详解)
2017/06/24 Python
Python变量赋值的秘密分享
2018/04/03 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
优秀干部获奖感言
2014/01/31 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
开展创先争优活动总结
2014/08/28 职场文书
医德医魂心得体会
2014/09/11 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
经理岗位职责
2015/02/02 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书