JS处理数据四舍五入(tofixed与round的区别详解)


Posted in Javascript onOctober 26, 2017

1 、tofixed方法

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。具体规则如下:

简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

显然这种规则不符合我们平常在数据中处理的方式。为了解决这样的问题,可以自定义去使用Math.round方法进行自定义式 的实现指定保留多少位数据进行处理。

定义和用法

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

语法
NumberObject.toFixed(num)

参数 描述
num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。

返回值

返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

抛出

当 num 太小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引发该异常。有些实现支持更大范围或更小范围内的值。

当调用该方法的对象不是 Number 时抛出 TypeError 异常。

实例

在本例中,我们将把数字舍入为仅有一位小数的数字:

Show the number 13.37 with one decimal:

<script type="text/javascript">
var num = new Number(13.37);
document.write (num.toFixed(1))
</script>

输出:

13.4

2 、round方法

round() 方法可把一个数字舍入为最接近的整数。例如:Math.round(x),则是将x取其最接近的整数。其取舍的方法使用的是四舍五入中的方法,符合数学中取舍的规则。对于小数的处理没有那么便捷,但是可以根据不同的要求,进行自定义的处理。

例如:对于X进行保留两位小数的处理,则可以使用Math.round(X * 100) / 100.进行处理。

定义和用法

round() 方法可把一个数字舍入为最接近的整数。

语法
Math.round(x)
参数 描述
x 必需。必须是数字。
返回值
与 x 最接近的整数。

说明
对于 0.5,该方法将进行上舍入。

例如,3.5 将舍入为 4,而 -3.5 将舍入为 -3。

实例
把不同的数舍入为最接近的整数:

<script type="text/javascript">
document.write(Math.round(0.60) + "<br />")
document.write(Math.round(0.50) + "<br />")
document.write(Math.round(0.49) + "<br />")
document.write(Math.round(-4.40) + "<br />")
document.write(Math.round(-4.60))
</script>

输出:

1
1
0
-4
-5

以上这篇JS处理数据四舍五入(tofixed与round的区别详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
window.location.href中url中数据量太大时的解决方法
Dec 23 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
Apr 23 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
Sep 20 Javascript
Angular2从搭建环境到开发步骤详解
Oct 17 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 #Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 #Javascript
纯JavaScript实现实时反馈系统时间
Oct 26 #Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 #Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
Oct 26 #Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 #Javascript
js 只比较时间大小的实例
Oct 26 #Javascript
You might like
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python实现CET查分的方法
2015/03/10 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
python微信好友数据分析详解
2018/11/19 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
现金出纳岗位职责
2014/03/15 职场文书
个人借款担保书
2014/04/02 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
小学亲子活动总结
2014/07/01 职场文书
2014年终工作总结范本
2014/12/15 职场文书
鲁冰花观后感
2015/06/10 职场文书
小学语文国培研修日志
2015/11/13 职场文书
MySQL数据库查询之多表查询总结
2022/08/05 MySQL