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


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 fancybox插件打造一个实用的数据传输模态弹出窗体
Jan 15 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 Javascript
详解webpack4之splitchunksPlugin代码包分拆
Dec 04 Javascript
JS实现根据数组对象的某一属性排序操作示例
Jan 14 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
Feb 28 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
Mar 26 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 ajax 静态分页过程形式
2011/09/02 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php使用PDO方法详解
2014/12/27 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
python基于pyDes库实现des加密的方法
2017/04/29 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
Python 忽略文件名编码的方法
2020/08/01 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
中职生求职信
2014/07/01 职场文书
小石潭记导游词
2015/02/03 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
如何书写邀请函?
2019/06/24 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技