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


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去除空格的三种方法(正则/传参函数/trim)
Feb 06 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
Jan 19 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
JavaScript String 对象常用方法详解
May 13 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 Javascript
浅谈JS对象添加getter与setter的5种方法
Jun 09 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 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解析html类库simple_html_dom的转码bug
2014/05/22 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
Python实现快速多线程ping的方法
2015/07/15 Python
python实现微信防撤回神器
2019/04/29 Python
python的setattr函数实例用法
2020/12/16 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
自荐信的两点禁忌
2013/10/30 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
优秀食品类广告词
2014/03/19 职场文书
国防教育标语
2014/10/08 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
新郎新娘致辞
2015/07/31 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL