实现js保留小数点后N位的代码


Posted in Javascript onNovember 13, 2014

在JS中,一般实现保留小数点后N位的话,都是利用toFixed函数

<script language="javascript"> 

document.write("<h1>JS保留两位小数例子</h1><br>"); 

var a=2.1512131231231321; 

document.write("原来的值:"+a+"<br>"); 

document.write("两位小数点:"+a.toFixed(2)+"<br>四位小数点"+a.toFixed(4)); 

</script>

四舍五入的转换函数,如下:

function round(v,e){

var t=1;

for(;e>0;t*=10,e--);

for(;e<0;t/=10,e++);

return Math.round(v*t)/t;

}

参数里的:

v表示要转换的值

e表示要保留的位数

函数里的两个for,这个是重点了,

第一个for针对小数点右边的情况,也就是保留小数点右边多少位;

第二个for针对小数点左边的情况,也就是保留小数点左边多少位。

for的作用,就是计算t的值,也就是v应该放大或者缩小多少倍的倍数(倍数=t)。

for这里利用到了for里的两个特性,条件判断和计数器累计(循环),

当e满足条件时for继续,并且e每次累加(e的每次累加,就是给for制造不满足循环的条件)的同时,也计算t的值。

最后利用了原生的round方法来计算被放大/缩小后的v的结果,然后把结果放大/缩小到正确的倍数

下面各种保留二位数实例

<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 相关文章推荐
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
纯js实现动态时间显示
Sep 07 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
JavaScript实现一个简易的计算器实例代码
May 10 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
详谈jQuery中的this和$(this)
Nov 13 #Javascript
FF(火狐)浏览器无法执行window.close()解决方案
Nov 13 #Javascript
jquery checkbox 勾选的bug问题解决方案与分析
Nov 13 #Javascript
Javascript window对象详解
Nov 12 #Javascript
a标签的href与onclick事件的区别详解
Nov 12 #Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 #Javascript
JavaScript实现关键字高亮功能
Nov 12 #Javascript
You might like
MySQL授权问题总结
2007/05/06 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
jquery 实现的全选和反选
2009/04/15 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
jQuery Position方法使用和兼容性
2017/08/23 jQuery
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
python网络编程之文件下载实例分析
2015/05/20 Python
Python理解递归的方法总结
2019/01/28 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
Python模块常用四种安装方式
2020/10/20 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
师范毕业生个人求职信
2013/12/09 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
关于运动会的广播稿
2014/09/22 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
投诉信范文
2015/07/02 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
学习计划是什么
2019/04/30 职场文书