实现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 Flash插入函数免激活代码
Mar 31 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
Sep 08 Javascript
通过隐藏option实现select的联动效果
Nov 10 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
Feb 11 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
简单的React SSR服务器渲染实现
Dec 11 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
node后端服务保活的实现
Nov 10 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 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与paypal整合方法
2010/11/28 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
微信小程序签到功能
2018/10/31 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
使用K.function()调试keras操作
2020/06/17 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
党的群众路线教育实践活动总结
2014/10/30 职场文书
党员承诺书格式范文
2015/04/28 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
gojs实现蚂蚁线动画效果
2022/02/18 Javascript