JS中Math.round()的特殊性

【JavaScript】关于解决JS 计算精度问题(toFixed, Math.round, 运算表达式) 前言 最近在做一个ERP的项目,里面涉及到了很多的计算,尤其特别是有很多关于浮点数的计算,然后就碰到了下面的问题。 问题描述 & 解决方案 1.使用toFixed or Math.round进行四舍五入&保留两位小数会有5不进1的情况 举个🌰,我在开发的过程中遇到了321201.595这个数字… 然后我想对他进行四舍五入 & 保留两位小数,一开始不太了解 toFixed有那么多坑,所以直接用的.toFixed(2),结果如下: const number = 321201.595; c 阅读详情

Math.round()方法即为我们常说的“四舍五入”方法,但Math.round()方法准确说是“四舍六入”,5要进行判断对待。

首先看下下面的几个结果:如果传入的参数是正数的话:

    console.log(Math.round(1.0) )//1
    console.log(Math.round(1.4) )//1
    console.log(Math.round(1.5) )//2
    console.log(Math.round(1.6) )//2

如果传入的参数是负数的话就会发生怪异行为:

    console.log(Math.round(-1.0) )//-1
    console.log(Math.round(-1.4) )//-1
    console.log(Math.round(-1.5) )//-1
    console.log(Math.round(-1.6) )//-2


原理:Math.round()的原理是对传入的参数+0.5之后,再向下取整得到的数就是返回的结果。这里的向下取整是说取比它小的第一个整数或者和它相等的整数。

因此Math.round(-1.5)的结果是-1.5 + 0.5 再向下取整,即-1.0取整,结果是-1.
Math.round(-1.4)的结果是 -1.4 + 0.5 即-0.9 向下取整,结果是-1。
Math.round(1.5)即为 1.5 + 0.5 再向下取整,结果是2。

网页版Minecraft开发实战:Three.js渲染与性能优化指南 WebGL技术为浏览器端3D图形渲染提供了强大支持,通过GPU加速实现复杂的视觉呈现。其核心原理是利用JavaScript API直接调用显卡资源,将几何数据转换为屏幕像素。在游戏开发领域,WebGL的价值在于打破平台限制,实现跨设备即时访问。Three.js作为流行的WebGL库,通过封装底层复杂性,让开发者能够快速构建3D场景。在网页游戏开发中,性能优化尤为关键,涉及区块加载策略、网格合并和LOD技术等实践。本文以网页版Minecraft为例,详细解析如何运用Three.js实现方块世界的渲染优化,涵盖 阅读详情

相关推荐

React Native鸿蒙ScrollView横向分页实现与优化

在跨平台移动开发中,ScrollView横向分页是常见的UI交互模式,尤其在React Native框架下需要针对不同操作系统进行适配。鸿蒙系统(HarmonyOS)因其独特的轻量级内核设计和JS UI框架,在滚动容器实现上与Android/iOS存在显著差异。本文深入解析鸿蒙平台的手势识别优先级队列机制和硬件加速合成特性,通过对比传统`pagingEnabled`实现方案,揭示分页边界错位等典型问题的成因。重点介绍`snapToInterval`精确计算、`decelerationRate`参数调优等关键

clijovtbq401783153的博客 361

关于js中Math.round()方法

Math.round() 给定数字的值四舍五入到最接近的整数 在js中的Math.round()不同于其他语言的round()函数 Math.round()并不总是舍入到远离0的方向尤其是在负数的小数部分恰好等于0.5的情况下 例: console.log(Math.round(-4.5));//-4 console.log(Math.round(-9.1));//-9 cons...

seiEight的博客 2万+

H5导航栏动态跳色:滚动监听、颜色插值与多端适配实战

在移动端H5开发中,滚动监听是实现动态交互效果的基础技术,它通过感知用户滚动行为来触发页面元素的视觉变化。其核心原理在于利用JavaScript事件监听或Intersection Observer API,结合视口计算,精确获取元素位置信息。这项技术的价值在于能显著提升用户体验,通过动态视觉反馈增强页面的引导性和沉浸感。它广泛应用于单页应用、长滚动页面等场景,以实现导航栏、背景等元素的平滑过渡效果。本文聚焦于H5导航栏的“跳色”效果,深入探讨了如何通过颜色插值算法实现平滑过渡,并针对微信、小程序等复杂环境提

weixin_33910137的博客 434

JavaScript Math.round()的用法以及怎么保留指定小数

JavaScript 数学表达式:Math.round() 语法: Math.round(xx) // 参数 ‘xx’ 代表一个数值 返回值: 把给定的值四舍五入为最接近的整数 示例: var xx= 20.5; console.log(Math.round(xx, xx)) // 21 var xx= 20.49; console.log(Math.round(xx)) // 20 var xx= -20.5; var xx= -20.55; console.log(Math.round

bigpatten的博客 3万+

JavaScript中的round()函数和Math.round()函数的区别

`Math.round()`函数是JavaScript内置的全局函数,它用于将一个数字四舍五入为最接近的整数。函数是JavaScript内置的全局函数。它们的功能都是将一个数字四舍五入为最接近的整数,但它们的调用方式和返回结果略有不同。``round()`函数是Number对象的一个方法,它用于将一个数字四舍五入为最接近的整数。下面我们将详细介绍这两个函数的不同之处,并提供相应的源代码示例。函数是作为Number对象的方法调用的,返回一个新的整数值,而。函数是直接作为全局函数调用的,返回最接近的整数值。

YabClass的博客 976

利用featureCounts实现高效转录本定量:从比对到下游分析

本文详细介绍了利用featureCounts工具进行RNA-seq转录本定量的完整流程。从软件安装、输入文件准备,到核心命令参数解析与批量样本处理,再到将生成的计数矩阵无缝衔接至DESeq2进行差异表达分析,提供了从比对到下游分析的一站式实战指南。文章重点阐述了featureCounts在效率与易用性上的优势,并分享了常见问题排查与性能优化技巧,帮助研究者高效完成转录本定量这一关键步骤。

weixin_29069131的博客 317

JavaScript中Math.round()小数四舍五入

网上有对Math.round()有着‘四舍六入五取偶’这样一个说法: Math.Round采用的是国际通行的是 Banker 舍入法. Banker’s rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的. 这个算法可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。” 大概的意思就是:我们常认为的四舍五入其实还要考虑五的后面为零时则需要判断前一位的奇偶性(代码来

txf666的博客 4691

易灵思Trion FPGA实战:5分钟搞定MIPI硬核配置(附Interface Designer避坑指南)

本文详细介绍了易灵思Trion FPGA中MIPI硬核的快速配置方法,通过Interface Designer工具实现从时钟配置到数据收发的全流程实战。特别针对初次接触Trion系列的设计师,提供了六个关键配置陷阱及解决方案,帮助开发者高效完成嵌入式视觉和高速数据传输项目。

eee77的博客 784

JS除法不是默认向下取整的

JS除法不是默认向下取整的 今天刷题的时候,用到了二分,但是测试的时候居然超时了。。。 然后我检查了好久,原来是我用除法获取中间索引值的时候,没有对中间索引值进行取整处理, 后来查资料之后才知道 javaScript 中的除法和现实中的除法一样,不会自动向下取整,太坑了!!! 下次一定记住!!! console.log(10/3); console.log(Math.floor(10/3));//向下取整 console.log(Math.ceil(10/3));//向上取整 console.log(Mat

weixin_45830165的博客 861

保姆级教程:用再生龙Clonezilla Live给Ubuntu系统做全盘备份与恢复(含BIOS设置避坑)

本文提供了一份详细的Clonezilla Live教程,指导Ubuntu用户如何轻松完成全盘备份与恢复。从启动盘制作、BIOS设置避坑到备份参数解析和恢复操作,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效保护系统数据。

weixin_42116058的博客 637

Fortran基础编程(3)——格式化输出

本篇推文将进一步讲解Fortran基础语法中格式化输出与声明部分,让我们的代码更加美观起来吧~

qq_45715554的博客 3826

大于3小于4的整数bleem_JavaScript用Math.round()将一个数四舍五入到整数

1. 基本概念Math.round()方法用于将它的参数四舍五入到最接近的整数,如果最接近的整数有两个(此时参数的小数部分为0.5),那么结果就是更接近正无穷的那一个(或者说数值较大的那一个);如果它的参数原本就是整数,那么结果就是该参数自身。Math.round()方法的语法形式如下所示:Math.round(x);根据上面的说明我们可知,参数x应该是一个数字,即Number类型。如果...

weixin_28994935的博客 401

BookSim2.0 教程

本文是yz关于BookSim2.0的个人学习经验与教程。 1.介绍 什么是BookSim2.0 BookSim2.0 是周期正确的互联网络模拟器(A Cycle-Accurate Interconnection Network Simulator),被设计用来伴随William James Dally 等人出版的的书籍 Principles and Practices of INterconnection on Networks使用。 此后其功能不断得到扩展。当前的主要版本 BookSim 2.0 支持广泛

更新一些计算机体系架构NoC,GEM5, AXI4,还有machine learning 的日常 5736

JavaScript内置对象-Math对象(1),助你拿下Offer

3.3、Math概述。

2401_84091628的博客 277

TI IWR6843AOP雷达+DCA1000EVM数据采集:官方手册里的坑,我帮你踩完了

本文详细解析了TI IWR6843AOP雷达与DCA1000EVM数据采集实战中的12个关键细节,包括硬件连接陷阱、mmWave Studio隐藏设置、数据采集参数优化等,帮助开发者避开官方手册未提及的常见问题,提升数据采集效率和系统稳定性。

weixin_28366475的博客 1102

YOLOv11-Pose部署RK3588实战:人体姿态识别精度翻倍,边缘推理速度突破瓶颈

本教程从YOLOv11-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

m0_64661770的博客 138

js基础---随记

1.null instanceof Object instanceof 操作符来判断对象的具体类型,语法格式: var result = objectName instanceof objectType 返回布尔值,如果是指定类型返回 true,否则返回 false。 2. Symbol---ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值, let sy = Symbol("KK"); console.log(sy); //...

aji666的博客 178

宇树G1机器人遥控器音频控制实战

本文介绍了宇树G1人形机器人遥控器控制音频播放的核心实现方案。通过DDS消息订阅获取遥控器输入,采用非阻塞的subprocess调用aplay命令控制外接音响设备。系统支持播放、暂停和重播功能,采用50ms轮询间隔实现实时响应。关键点包括遥控器初始化、音频进程管理(Popen)、退出机制。文章还提供了设备配置指南、遥控器按键说明和常见问题解决方案。该方案从复杂音频播放器中提炼出核心控制逻辑,可作为机器人交互开发的参考模板。

m0_47999117的博客 542

基于Bangle.js LE环境感知:从扫描原理到嵌入式JavaScript实现

蓝牙低功耗(BLE)技术作为物联网设备通信的基础,其广播与扫描机制是实现设备发现和环境感知的核心原理。通过BLE扫描,设备可以接收周围设备的广播包,获取信号强度(RSSI)和设备信息,从而实现对无线环境的感知。这一技术在室内定位、设备追踪和近场感知等场景中具有重要价值。本文以热门的开源硬件Bangle.js 2智能手表为平台,深入探讨如何利用其内置的nRF52832芯片和Espruino JavaScript运行时,通过调用底层`NRF.findDevices` API,实现一个低功耗、可穿戴的BLE环境感

weixin_30736301的博客 378

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

js数据类型之数字类型

1.科学计数法的写法 直接举例子可能用法更明确一些 1000000=1e6 7.3e9=73,0000,0000. //73亿 **总结一下上面用法就是这种写法就等于 “e”把数字乘以1后面跟着给定数量的 0 的数字** 同上看一些负数用法: 0.000001=1e-6 ...

叮当的猫猫的博客 1553

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

《JavaScript DOM编程艺术》笔记

知识点: 注意代码分离: CSS表示层 JS行为层 HTML内容 标记良好的代码就是一切! Html: id实现页内导航: id=here <a href="#here"/> XHTML : <img /><br />为了向后兼容,反斜杠前有一个空格 JS: js关联数组:vocalist[“pi...

aiyue5923的博客 170

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JavaScript类型本质:值的语义系统与运行时契约

在编程语言中,‘类型’并非变量的标签,而是为内存中的原始比特赋予可计算意义的语义系统。它决定了值如何被解释、转换与操作,是连接人类逻辑与机器执行的核心桥梁。JavaScript作为动态类型语言,其类型绑定于值而非变量,依赖运行时的隐式转换与契约式行为,这既带来灵活性,也引入不确定性。理解IEEE 754浮点数、UTF-16字符串、原型链对象等底层映射机制,是规避`0.1 + 0.2 !== 0.3`、`typeof null === 'object'`等经典陷阱的前提。本文深入剖析JS九种语言类型、三大检测

xiang_fu的博客 503

ai辅助开发:让快马智能生成js近似数解决方案,自然语言描述自动出代码

这个过程中最实用的是AI会同时解释为什么选择这个方法,以及toFixed()与Math.round()的区别。对于新手开发者尤其友好,既能学到正确的实现方式,又能避免常见的数值处理陷阱。特别有用的是可以对比不同方法的运行结果,比如看到toPrecision()和toExponential()处理同一个数字时的差异。对于大数据量的处理,还会建议使用性能更好的方法。最近在开发一个需要频繁处理数字格式化的项目时,发现JavaScript中的近似数处理真是个让人头疼的问题。这个项目最让我惊喜的是。

AgatePanther34的博客 29

HarmonyOS ArkTS API 24 班级管理助手当 `build()` 方法或 `@Builder` 方法中读取了某个 `@State` 变量,框架会记录该 UI 片段依赖此变量

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

2301_79516720的博客 328

Python 3.12 程序阅读题 10 类典型逻辑陷阱与调试技巧

本文详细解析了Python 3.12程序阅读题中常见的10类逻辑陷阱,包括变量作用域混淆、循环控制误判、可变对象修改等,并提供了变量追踪表和执行流程图等实用调试技巧。这些方法特别适合Python初学者在期末复习和选择题练习中提升代码理解能力,有效避免常见错误。

weixin_33834910的博客 331

WebSocket TLS指纹校验实战:使用tls-client绕过严格客户端验证

在实时通信领域,WebSocket是实现双向数据传输的基础协议,广泛应用于金融行情推送、在线协作和即时通讯等场景。其工作原理是在TCP连接基础上,通过HTTP Upgrade机制建立持久连接。为了保障通信安全,TLS(传输层安全)协议被用于加密WebSocket连接,形成WSS。在TLS握手阶段,客户端会发送包含TLS版本、加密套件列表和扩展信息(如ALPN、SNI)的Client Hello报文,这些信息构成的唯一标识被称为TLS指纹(如JA3)。服务器通过校验TLS指纹来识别和过滤非法客户端,这是反爬虫

weixin_30955617的博客 396
上一篇: 阻止事件默认行为和事件冒泡行为
下一篇: Intership7.18
HEGEHUB
博客等级 码龄8年 22粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值