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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 Javascript
IONIC自定义subheader的最佳解决方案
Sep 22 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
Jan 06 Javascript
bootstrapValidator 重新启用提交按钮的方法
Feb 20 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
JavaScript创建表格的方法
Apr 13 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
Apr 24 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 HtmlReplace输入过滤安全函数
2010/07/03 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
Python读取Excel的方法实例分析
2015/07/11 Python
Python手机号码归属地查询代码
2016/05/04 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
入党申请书自我鉴定
2013/10/12 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
公司承诺函范文
2015/01/21 职场文书
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
vue修饰符.capture和.self的区别
2022/04/22 Vue.js
Java界面编程实现界面跳转
2022/06/16 Java/Android