实现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 相关文章推荐
自适应高度框架 ----属个人收藏内容
Jan 22 Javascript
FireFox中textNode分片的问题
Apr 10 Javascript
语义化 H1 标签
Jan 14 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
Jan 21 Javascript
JS将unicode码转中文方法
May 08 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
Oct 31 Javascript
基于jquery的on和click的区别详解
Jan 15 jQuery
ajax前台后台跨域请求处理方式
Feb 08 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
Oct 08 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缓存技术介绍
2006/11/25 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
javascript 节点排序 2
2011/01/31 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
python正则表达式之作业计算器
2016/03/18 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python正则表达式完全指南
2017/05/25 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python Pexpect模块的使用
2020/12/25 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
合作意向书
2014/07/30 职场文书
2015年采购员工作总结
2015/04/27 职场文书
律师催款函范文
2015/06/24 职场文书
奠基仪式致辞
2015/07/30 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记