实现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 相关文章推荐
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
Dec 27 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
JS实现可改变列宽的table实例
Jul 02 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
Sep 19 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
微信小程序 数组中的push与concat的区别
Jan 05 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
React中获取数据的3种方法及优缺点
Feb 18 Javascript
如何通过JS实现转码与解码
Feb 21 Javascript
单线程JavaScript实现异步过程详解
May 19 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
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
对python中数组的del,remove,pop区别详解
2018/11/07 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
python中的print()输出
2019/04/12 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python实现密码薄文件读写操作
2019/12/16 Python
如何在django中添加日志功能
2020/02/06 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
银行毕业实习自我鉴定
2013/09/19 职场文书
计算机大学生的自我评价
2013/10/15 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
广告业务员岗位职责
2014/02/06 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
企业承诺书怎么写
2014/05/24 职场文书
食品安全标语
2014/06/07 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
广告业务员岗位职责
2015/02/13 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js