实现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 相关文章推荐
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
详解微信小程序开发之下拉刷新 上拉加载
Nov 24 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
Feb 18 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 Javascript
微信小程序tab左右滑动切换功能的实现代码
Feb 08 Javascript
详解Js模块化的作用原理和方案
Apr 29 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/04/27 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php实现读取内存顺序号
2015/03/29 PHP
PHP使用递归生成文章树
2015/04/21 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Python采用Django开发自己的博客系统
2020/09/29 Python
python字符串,数值计算
2016/10/05 Python
Python中查看文件名和文件路径
2017/03/31 Python
Python学习小技巧总结
2018/06/10 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
实体的生命周期
2013/08/31 面试题
毕业生在校学习的自我评价分享
2013/10/08 职场文书
防火标语大全
2014/10/06 职场文书
校园运动会广播稿
2014/10/06 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
python实现自动清理文件夹旧文件
2021/05/10 Python