实现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 相关文章推荐
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
Jquery 实现table样式的设定
Jan 28 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
老生常谈JavaScript 函数表达式
Sep 01 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
Jan 04 Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
详解Vue.directive 自定义指令
Mar 27 Javascript
详解json串反转义(消除反斜杠)
Aug 12 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
Feb 12 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 iconv() : Detected an illegal character in input string
2010/12/05 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
JavaScript 绘制饼图的示例
2021/02/19 Javascript
python字符串替换示例
2014/04/24 Python
为python设置socket代理的方法
2015/01/14 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python匿名函数用法实例分析
2019/08/03 Python
python 字符串常用方法汇总详解
2019/09/16 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Python join()函数原理及使用方法
2020/11/14 Python
资深财务管理人员自我评价
2013/09/22 职场文书
计算机应用专业毕业生求职信
2013/10/24 职场文书
营销与策划应届生求职信
2013/11/04 职场文书
大学在校生求职信范文
2013/11/21 职场文书
竞选班长演讲稿
2013/12/30 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
五分钟演讲稿
2014/04/30 职场文书
关于环保的演讲稿
2014/05/10 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
Golang 链表的学习和使用
2022/04/19 Golang