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 相关文章推荐
JavaScript 事件记录使用说明
Oct 20 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
Dec 04 Javascript
js常用排序实现代码
Dec 28 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
jQuery Validation PlugIn的使用方法详解
Dec 18 Javascript
Bootstrap 组件之按钮(二)
May 11 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
Mar 08 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 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错误、异常处理类
2014/03/21 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP中的类型约束介绍
2015/05/11 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
Angular2库初探
2017/03/01 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python实现建立SSH连接的方法
2015/06/03 Python
python实现自主查询实时天气
2018/06/22 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
numpy.random模块用法总结
2019/05/27 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
总经理秘书工作职责
2013/12/26 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
电子专业自荐信
2014/07/01 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
画展观后感
2015/06/17 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang