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


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 相关文章推荐
JavaScript 函数式编程的原理
Oct 16 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
ajax读取数据后使用jqchart显示图表的方法
Jun 10 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
jQuery实现模拟flash头像裁切上传功能示例
Dec 11 Javascript
vue双向绑定简要分析
Mar 23 Javascript
vue cli2.0单页面title修改方法
Jun 07 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
Jan 21 Javascript
原生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核心代码分析require和include的区别
2011/01/02 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
JS如何生成动态列表
2020/09/22 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Django添加sitemap的方法示例
2018/08/06 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
python集合删除多种方法详解
2020/02/10 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
Ibatis如何使用动态表名
2015/07/12 面试题
介绍一下Java中的Class类
2015/04/10 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
学校后勤岗位职责
2014/02/19 职场文书
电台实习生求职信
2014/02/25 职场文书
聚美优品的广告词
2014/03/14 职场文书
房产转让协议书
2014/04/11 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
整改通知书
2015/04/20 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang