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


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 获取滚动条高度示例代码
Oct 24 Javascript
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
JavaScript中Number对象的toFixed() 方法详解
Sep 02 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
Jan 13 Javascript
在vscode中统一vue编码风格的方法
Feb 22 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
Oct 10 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中实现进程间通讯
2006/10/09 PHP
php IP及IP段进行访问限制的代码
2008/12/17 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
自己的js工具 Event封装
2009/08/21 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
node.js require() 源码解读
2015/12/13 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python线程中对join方法的运用的教程
2015/04/09 Python
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python从零开始创建区块链
2018/03/06 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
德国家具在线:Fashion For Home
2017/03/11 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
交通安全教育制度
2014/02/02 职场文书
物理力学求职信
2014/02/18 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
户籍证明模板
2014/09/28 职场文书
模范教师事迹材料
2014/12/16 职场文书
社区结对共建协议书
2016/03/23 职场文书