专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

js四舍五入

来源:小嗨整编  作者:小嗨  发布时间:2024-03-12 10:19
摘要:js四舍五入的方法:1、tofixed方法,可把number四舍五入为指定小数位数的数字;2、round()方法,可把一个数字舍入为最接近的整数。1、tofixed方法toFixed()方法可把Number四舍五入为指定小数位...

js四舍五入的方法:1、tofixed方法,可把 number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。

js四舍五入

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('100xb0'); // 100parseInt('100.78'); // 123// Number 类型parseInt(100.12) ; // 100parseInt(100.78); // 100

7、取整: 位运算

| 0   : 和 0 进行 按位或 操作,原值不变~~   : 两次 按位非 操作得到的也是原值>> 0 : 右移 0 位>> 0: 无符号右移 0 位 

这些位运算符在实现取整操作时,会表现出一些共同的特征:

对于 Number 类型来说,直接应用位操作, 和 parseInt 得到的结果几乎一样;对于其他类型,内部会先通过 Number() 将其转换为一个数值,然后再应用位操作。对特殊 NaN 和 Infinity 值应用位操作时,这两个值都会被当成 0 来处理 。

对于 Number 类型,直接应用位运算。

~~ 100.12;  //  100100.78  |  0;    //  100100.45 >>  0;    //  100100.50 >> 0;    //  100

对于其他类型,先使用 Number() 转换为数值类型,再进行位运算。

~~ '100.12'  // 100, Number('100.12') == 100.12'100.50'  >> 0;  // 100,Number('100.50') == 100.50'100.96'  > 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

位运算作用于最基本的层次上,即按内存中表示数值的位来操作数值。

位运算能取整的原因是:

ECMAScript 中的数值以64位双精度浮点数存储,但位运算只能作用于整数,因此要先将 64 位的浮点数转换成 32 位的整数,然后再进行位运算,最后再将计算结果转换成64位浮点数存储。

以上就是js四舍五入的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/1146834.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


网络百科
小编:小嗨整编
相关文章相关阅读
  • 总结CreateJS的详细介绍

    总结CreateJS的详细介绍

    CreateJS库是一款HTML5游戏开发的引擎,是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低HTML5项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验。掌握了CreateJS可以更方便的完成HTM...

  • jsp文件怎么创建

    jsp文件怎么创建

    创建jsp文件的步骤:1、安装和配置java开发环境;2、安装和配置web服务器;3、创建jsp文件;4、编写jsp代码;5、部署和运行应用程序;6、调试和测试。详细介绍:1、安装和配置java开发环境,首先需要在计算机上安装jdk,可以从...

  • JS怎么获取当前时间戳

    JS怎么获取当前时间戳

    js获取当前时间戳,可以通过date.now()方法来实现,返回自1970年1月1日00:00:00utc以来经过的毫秒数也就是当前时间戳。下面我们就结合具体的代码示例,给大家介绍JS怎么获取当前时间戳。代码示例如下:...

  • nodejs 解决413错误

    nodejs 解决413错误

    在使用node.js开发web应用程序时,你可能会遇到处理大文件上传的情况。然而,当上传的文件太大时,可能会遇到http413请求实体过大的错误。这是因为默认情况下,node.js对请求体大小的限制为100kb。当请求实体大小...

  • js手机号码正则表达式

    js手机号码正则表达式

    正则表达式(regularexpression)是一个描述字符模式的对象。使用javascript正则表达式可以进行强大的模式匹配和文本检索与替换功能。手机号码正则表达式验证。functioncheckPhone(){var...

  • JSF和JavaScript有什么区别

    JSF和JavaScript有什么区别

    区别:jsf是一种用于构建web应用程序的java框架,提供了一种以组件为中心来开发javaweb用户界面的方法,从而简化了开发。而javascript是一种解释型的脚本语言,被广泛用于web应用开发,常用来为网页添加各式各样的动态功能。...

  • js中有哪些事件?js中常用事件的介绍

    js中有哪些事件?js中常用事件的介绍

    javascript使我们有能力创建动态页面。事件是可以被javascript侦测到的行为。网页中的每个元素都可以产生某些可以触发javascript函数的事件。那么,js中有哪些事件呢?本篇文章将给大家来介绍关于js中常用的事件。话不多说...

  • 什么是jsp开发技术

    什么是jsp开发技术

    什么是jsp开发技术?JSP全名为JavaServerPages,中文名叫java服务器页面,是一种动态网页技术。JSP是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptl...

  • 周排行
  • 月排行
  • 年排行

精彩推荐