实现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模拟滚动条(横向竖向)
Feb 22 Javascript
jquery操作checkbox示例分享
Jul 21 Javascript
JS继承用法实例分析
Feb 05 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
Javascript缓存API
Jun 14 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
AngularJs directive详解及示例代码
Sep 01 Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 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
咖啡的植物学知识
2021/03/03 咖啡文化
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
php 字符串替换的方法
2012/01/10 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
javascript中Object使用详解
2015/01/26 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
wxPython中listbox用法实例详解
2015/06/01 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python实现画图工具
2020/08/27 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
小学开学标语
2014/07/01 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
综治工作汇报材料
2014/10/27 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL