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


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 相关文章推荐
MSN消息提示类
Sep 05 Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 Javascript
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
用Vue写一个分页器的示例代码
Apr 22 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
JS原型和原型链原理与用法实例详解
Feb 05 Javascript
javascript实现前端input密码输入强度验证
Jun 24 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
Python中的异常处理学习笔记
2015/01/28 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
python 列表推导式使用详解
2019/08/29 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
贷款委托书
2014/08/01 职场文书
信用卡工资证明范本
2014/10/17 职场文书
作文评语集锦
2014/12/25 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server