调整小数的格式保留小数点后两位


Posted in Javascript onMay 14, 2014

在开发过程中经常遇到要调整小数的格式,如保留小数点后两位等等。方法也颇为常见,备忘如下。

第一种,利用math.round

var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100; //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10; //returns 28.5

第二种,js1.5以上可以利用toFixed(x) ,可指定数字截取小数点后 x位

3) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

4) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

以上两种方法最通用,但却无法满足某些特殊要求,比如保留小数点后两位,如果不满两位,不满两位则补零。此时就有了第三种方法。

第三种,转换函数,这段代码来源于国外一个论坛。

function roundNumber(number,decimals) { 
var newString;// The new rounded number 
decimals = Number(decimals); 
if (decimals < 1) { 
newString = (Math.round(number)).toString(); 
} else { 
var numString = number.toString(); 
if (numString.lastIndexOf(".") == -1) {// If there is no decimal point 
numString += ".";// give it one at the end 
} 
var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number 
var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with 
var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want 
if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated 
if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point 
while (cutoff > 0 && (d1 == 9 || isNaN(d1))) { 
if (d1 != ".") { 
cutoff -= 1; 
d1 = Number(numString.substring(cutoff,cutoff+1)); 
} else { 
cutoff -= 1; 
} 
} 
} 
d1 += 1; 
} 
if (d1 == 10) { 
numString = numString.substring(0, numString.lastIndexOf(".")); 
var roundedNum = Number(numString) + 1; 
newString = roundedNum.toString() + '.'; 
} else { 
newString = numString.substring(0,cutoff) + d1.toString(); 
} 
} 
if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string 
newString += "."; 
} 
var decs = (newString.substring(newString.lastIndexOf(".")+1)).length; 
for(var i=0;i<decimals-decs;i++) newString += "0"; 
//var newNumber = Number(newString);// make it a number if you like 
document.roundform.roundedfield.value = newString; // Output the result to the form field (change for your purposes) 
}

5) //round "original" to two decimals
var result=original.toFixed(2); //returns 28.45

6) // round "original" to 1 decimal
var result=original.toFixed(1); //returns 28.5

var original=28.4
var result=original.toFixed(2); //returns 28.40

Javascript 相关文章推荐
经验几则 推荐
Sep 05 Javascript
javascript 日期常用的方法
Nov 11 Javascript
JS重要知识点小结
Nov 06 Javascript
JavaScript在多浏览器下for循环的使用方法
Nov 07 Javascript
jquery使用正则表达式验证email地址的方法
Jan 22 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
新版小程序登录授权的方法
Dec 12 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
原生js的弹出层且其内的窗口居中
May 14 #Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 #Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 #Javascript
JavaScript函数获取事件源的小例子
May 14 #Javascript
javascript单引号和双引号的区别和处理
May 14 #Javascript
document.write的几点使用心得
May 14 #Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 #Javascript
You might like
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
Vue2 模板template的四种写法总结
2018/02/23 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
使用Python写个小监控
2016/01/27 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
台湾最大网路书店:博客来
2018/03/18 全球购物
母婴店促销方案
2014/03/05 职场文书
事假请假条范文
2014/04/11 职场文书
保护动物倡议书
2014/04/15 职场文书
本科生就业推荐信
2014/05/19 职场文书
婚纱店策划方案
2014/05/22 职场文书
人大调研汇报材料
2014/08/14 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
乔迁新居祝福语
2019/11/04 职场文书