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


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 相关文章推荐
jQuery getJSON 处理json数据的代码
Jul 26 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 Javascript
JavaScript实现多维数组的方法
Nov 20 Javascript
js确认删除对话框效果的示例代码
Feb 20 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
jquery实现select选中行、列合计示例
Apr 25 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
js密码强度校验
Nov 10 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
Feb 19 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
JSON生成Form表单的方法示例
Nov 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
Yii实现显示静态页的方法
2016/04/25 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python多线程下载文件的方法
2015/07/10 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python实现各种插值法(数值分析)
2019/07/30 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
彪马美国官网:PUMA美国
2017/03/09 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
经济与贸易专业应届生求职信
2013/11/19 职场文书
大学生找工作推荐信范文
2013/11/28 职场文书
学期自我评价
2014/01/27 职场文书
运动会稿件200字
2014/02/07 职场文书
秋天的雨教学反思
2014/04/27 职场文书
运动会报道稿300字
2014/10/02 职场文书
车辆年检委托书范本
2014/10/14 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技