js四舍五入
js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。
1 、tofixed方法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。具体规则如下:
简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
显然这种规则不符合我们平常在数据中处理的方式。为了解决这样的问题,可以自定义去使用Math.round方法进行自定义式 的实现指定保留多少位数据进行处理。
2 、round方法
round() 方法可把一个数字舍入为最接近的整数。例如:Math.round(x),则是将x取其最接近的整数。其取舍的方法使用的是四舍五入中的方法,符合数学中取舍的规则。对于小数的处理没有那么便捷,但是可以根据不同的要求,进行自定义的处理。
例如:对于X进行保留两位小数的处理,则可以使用 Math.round(X * 100) / 100 进行处理。
其它内容:
在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种:
向上取整:ceil向下取整:floor四舍五入:round固定精度:toFixed固定长度:toPrecision取整:parseInt、位运算
本文将对这 6 个 API 进行简单的讲解和总结。
1、向上取整: ceil
ceil 是`天花板`的意思,表示在一个数值之上,且距离该数最近的整数。ceil 是 Math 对象的静态方法,需要传递一个参数,其调用方法如下:
Math.ceil(12.34); //13Math.ceil(12.68); //13
2、向下取整: floor
floor 是`地板`的意思,表示在一个数值之下,且距离该数最近的整数。floor 是 Math 对象的静态方法,需要传递一个参数,其调用方法如下:
Math.floor(12.34); // 12Math.floor(12.68); // 12
3、四舍五入: round
round 的作用是对一个浮点数进行四舍五入,并保留整数位。round 也是 Math 对象的静态方法,也需要传递一个参数,其调用方法如下:
Math.round(12.34); // 12Math.round(12.54); // 13
4、固定精度: toFixed
toFixed 和上面三个方法不同,它是 Number 原型上实现的一个方法,其作用是对一个浮点数进行四舍五入并保留固定小数位。 toFixed 需要传递一个参数,其调用方式如下:
100.456001.toFixed(2); // 100.46100.456001.toFixed(3); // 100.456
5、固定长度: toPrecision
toPrecison 也是 Number 原型上实现的一个处理浮点数的方法,和 toFixed 不同的是,它是对一个浮点数进行四舍五入并保留固定长度的有效数字,包括整数部分。
99.456001.toPrecision(5); // 99.456100.456001.toPrecision(5); // 100.46
6、取整: parseInt
parseInt 是 全局对象 window上的一个方法,其作用是对一个可转换的数值取整,分为以下两种情况:
1. 将字符串数值转化为 Number 整数,对字符串的每一个字符进行转化,直到遇到不可转化的字符(包括小数点)停止。
2. 对浮点类型数值取整,忽略小数部分,不做四舍五入处理
// 字符串数值parseInt('100') ; // 100parseInt('100axt'); // 100parseInt('100xh20'); // 100parseInt('100.78'); // 123// Number 类型parseInt(100.12) ; // 100parseInt(100.78); // 100
7、取整: 位运算
| 0 : 和 0 进行 按位或 操作,原值不变~~ : 两次 按位非 操作得到的也是原值>> 0 : 右移 0 位<< 0 : 左移 0 位>>> 0: 无符号右移 0 位
这些位运算符在实现取整操作时,会表现出一些共同的特征:
对于 Number 类型来说,直接应用位操作, 和 parseInt 得到的结果几乎一样;对于其他类型,内部会先通过 Number() 将其转换为一个数值,然后再应用位操作。对特殊 NaN 和 Infinity 值应用位操作时,这两个值都会被当成 0 来处理 。
对于 Number 类型,直接应用位运算。
~~ 100.12; // 100100.78 | 0; // 100100.45 >> 0; // 100100.50 << 0; // 100100.96 >>> 0; // 100
对于其他类型,先使用 Number() 转换为数值类型,再进行位运算。
~~ '100.12' // 100, Number('100.12') == 100.12'100.50' >> 0; // 100,Number('100.50') == 100.50'100.96' << 0; // 100,Number('100.96') == 100.96~~ 'abc' // 0 , Number('abc') == NaN'12abc' >> 0; // 0, Number('12abc') == NaNundefined | 0 ; // 0, Number(undefined) == NaN~~null; // 0 , Number(null) == 0true >> 0; // 1 , Number(true) == 1false >> 0; //0 , Number(false) == 0[] << 0; // 0 , Number([]) == 0~~NaN; // 0 Infinity >>> 0; // 0
位运算作用于最基本的层次上,即按内存中表示数值的位来操作数值。
位运算能取整的原因是:
ECMAScript 中的数值以64位双精度浮点数存储,但位运算只能作用于整数,因此要先将 64 位的浮点数转换成 32 位的整数,然后再进行位运算,最后再将计算结果转换成64位浮点数存储。
以上是js四舍五入的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

这篇文章将为大家详细讲解有关PHP浮点数四舍五入法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP浮点数四舍五入法概述浮点数在计算机中表示为小数点后跟指数,然而,它们通常以有限位数的近似值存储。当需要将浮点数四舍五入到特定精度时,有几种方法可以实现。方法1.round()函数round()函数将浮点数四舍五入为最接近的整数。它接受浮点数和可选的精度参数。例如:$num=1.55;echoround($num);//输出:2echoround($num,1)

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

用法:在JavaScript中,insertBefore()方法用于在DOM树中插入一个新的节点。这个方法需要两个参数:要插入的新节点和参考节点(即新节点将要被插入的位置的节点)。

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest