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 相关文章推荐
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
Bootstrap选项卡与Masonry插件的完美结合
Jul 06 Javascript
基于jQuery实现的幻灯图片切换
Dec 02 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
微信上传视频文件提示(推荐)
Nov 22 Javascript
javascript异常处理实现原理详解
Feb 17 Javascript
vue制作抓娃娃机的示例代码
Apr 17 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
详解Python编程中time模块的使用
2015/11/20 Python
python 判断网络连通的实现方法
2018/04/22 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
django如何连接已存在数据的数据库
2018/08/14 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Python猴子补丁知识点总结
2020/01/05 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
家长评语大全
2014/01/22 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
个人四风问题整改措施
2014/10/24 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
七个非常实用的Python工具包总结
2021/06/15 Python
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android