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


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学习2 选择器的使用说明
Feb 07 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
Jan 04 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 Javascript
js实现文件上传功能 后台使用MultipartFile
Sep 08 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
Vue基于iview table展示图片实现点击放大
Aug 05 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中使用虚代理实现延迟加载技术
2014/11/05 PHP
php文件缓存方法总结
2016/03/16 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
iView框架问题整理小结
2018/10/16 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
python实现自动发送报警监控邮件
2018/06/21 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
党员先进事迹材料
2014/12/19 职场文书
婚礼答谢礼品
2015/01/20 职场文书
法院答辩状格式
2015/05/22 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android