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


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 iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
picChange 图片切换特效的函数代码
May 06 Javascript
javascript单引号和双引号的区别和处理
May 14 Javascript
node.js读取文件到字符串的方法
Jun 29 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
利用Angular.js限制textarea输入的字数
Oct 20 Javascript
详解react如何在组件中获取路由参数
Jun 15 Javascript
详解vue axios二次封装
Jul 22 Javascript
JavaScript显式数据类型转换详解
Mar 18 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 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 Filter过滤器全面解析
2016/08/09 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
浅谈javascript错误处理
2019/08/11 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
详解Python多线程
2016/11/14 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Django框架实现的分页demo示例
2019/05/25 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python中os包的用法
2020/06/01 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
教师实习自我鉴定
2013/12/14 职场文书
七年级音乐教学反思
2014/01/26 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
项目工作说明书
2014/07/29 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
六查六看剖析材料
2014/10/06 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书