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


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 相关文章推荐
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
Nov 23 Javascript
js实现大转盘抽奖游戏实例
Jun 24 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
Aug 29 Javascript
vue-cli 构建骨架屏的方法示例
Nov 08 Javascript
javascript数组元素删除方法delete和splice解析
Dec 09 Javascript
javascript实现计算器功能
Mar 30 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 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上传图片、删除图片实现代码
2010/05/12 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php强制运行广告的方法
2014/12/01 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
JsChart组件使用详解
2018/03/04 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
详解django2中关于时间处理策略
2019/03/06 Python
医学生自荐信
2013/12/03 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
文字自荐书范文
2014/02/10 职场文书
数据保密承诺书
2014/06/03 职场文书
村级个人对照检查材料
2014/08/22 职场文书
党员先进事迹材料
2014/12/19 职场文书
工作保证书
2015/01/17 职场文书
个人总结格式范文
2015/03/09 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书