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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
Javascript 继承实现例子
Aug 12 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
vue .sync修饰符的使用详解
Jun 15 Javascript
vue实现一个炫酷的日历组件
Oct 08 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 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
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
jQuery 获取对象 定位子对象
2010/05/31 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Python实现点云投影到平面显示
2020/01/18 Python
Python 如何实现访问者模式
2020/07/28 Python
Python连接mysql方法及常用参数
2020/09/01 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python