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 相关文章推荐
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
JQuery为元素添加样式的实现方法
Jul 20 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
webpack中的热刷新与热加载的区别
Apr 09 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
Vue表单之v-model绑定下拉列表功能
May 14 Javascript
解决Vue动态加载本地图片问题
Oct 09 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数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
NodeJS安装图文教程
2018/04/19 NodeJs
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
Python实现批量下载图片的方法
2015/07/08 Python
Python实现带百分比的进度条
2016/06/28 Python
python flask实现分页效果
2017/06/27 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
代码详解django中数据库设置
2019/01/28 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript