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 相关文章推荐
基于jQuery实现的QQ表情插件
Aug 25 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
JS实现微信里判断页面是否被分享成功的方法
Jun 06 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
vue 属性拦截实现双向绑定的实例代码
Oct 24 Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
vue-froala-wysiwyg 富文本编辑器功能
Sep 19 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 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
基于mysql的论坛(2)
2006/10/09 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
js实现iframe动态调整高度的代码
2008/01/06 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
优秀士兵先进事迹
2014/02/06 职场文书
优秀教师推荐材料
2014/12/16 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
数学备课组工作总结
2015/08/12 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
CSS基础详解
2021/10/16 HTML / CSS
Golang 遍历二叉树
2022/04/19 Golang
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL