js 小数相乘后,精度缺失问题,记录四舍五入,向下取整

这篇具有很好参考价值的文章主要介绍了js 小数相乘后,精度缺失问题,记录四舍五入,向下取整。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失0.01,发现相乘的时候,会失去精度,如图所示。被这整的吐血,由于计算逻辑由前端计算,所以传值后端总出错(尽量后端计算)。
    js 小数相乘后,精度缺失问题,记录四舍五入,向下取整,javascript,前端
    还发现toFixed也会失去进度,简单来说原因:算法不一样,叫说“银行家算法”,不是正常的四舍五入,(想要了解可以具体百度一下,此处记录下自己的问题与解决方法)如图所示。
    一、取小数位是奇数,舍5入1;
    js 小数相乘后,精度缺失问题,记录四舍五入,向下取整,javascript,前端
    二、取小数位为偶数,舍5不进
    js 小数相乘后,精度缺失问题,记录四舍五入,向下取整,javascript,前端
  2. 我的解决方法
    toPrecision(value): 将数字格式化为特定的精度或长度
    toFixed(value) :方法将字符串四舍五入为指定的小数位数
    精度长度变大,后在四舍五入,向下取整;如图所示
    一、四舍五入,向下取整取位小数
    js 小数相乘后,精度缺失问题,记录四舍五入,向下取整,javascript,前端
    代码
    Math.round((13.345 * 100).toPrecision(12))/100
    Math.floor((13.345 * 100).toPrecision(12))/100
    

文章来源地址https://www.toymoban.com/news/detail-733471.html

到了这里,关于js 小数相乘后,精度缺失问题,记录四舍五入,向下取整的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elementui动态表单实现计算属性携带参数,并将计算出的值四舍五入保留两位小数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 写项目的时候,遇到需要在动态表单中,将同一级输入框输入的内容计算出来,并动态显示,发现computer计算属性好像不能带参数,最后查了好多文档才解决,看下面简单案例 vue中computed计算属性无法直

    2024年02月14日
    浏览(27)
  • JS小数运算精度丢失的问题

    工作中会不会经常会碰到一些数据指标的计算,比如百分比转化,保留几位小数等,就会出现计算不准确,数据精度丢失的情况。通过这篇分享借助第三方库能够轻松解决数据精度丢失的问题。 JS数字精度丢失的一些常见问题 为什么0.1 + 0.2 === 0.3是false呢? 先看下面这个比喻

    2024年02月08日
    浏览(42)
  • 四舍五入(c++基础)

    题目描述: 给定一个实数x,求保留y位小数的结果。(x=1000,y=5,y为整数) 输入格式: 一行,两个数,以一个空格分开。 输出格式: 一个实数。 样例输入: 样例输出: 提示:  方法一(推荐): 使用c语言中printf语句。 printf(\\\"%0.*lf\\\",y,x) 表示输出x时保留y位小数(*会用后面的y替代)

    2024年02月14日
    浏览(31)
  • PHP 四舍五入实现方法

    1. PHP 实现四舍五入的函数为 round() ,语法格式如下: 返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。 四舍五入数字到两位小数、设置负数: 除了使用 round() 方法外,我们还可以使用 sprintf() 方法来

    2024年02月12日
    浏览(44)
  • Python实现真正的四舍五入

    Python 内置的函数 round() 能够大致实现四舍五入的功能,但会存在部分场景不适用,比如: 网上搜了一圈,只找到了 Decimal 的替代解决方法,但看了貌似比较复杂,经过思考一番,只有遇到尾数为 5 的情况下,才会计算有偏差,那直接把 5 加 1 变成 6,不就可以轻松解决了

    2024年02月11日
    浏览(35)
  • Java中的取整、四舍五入

    目录 1、直接强制转换--取整 2、Java提供的函数  参考文献 结果: 直接用强制转换的方式将浮点型数据转换为整型时, 直接去掉小数点后部分的精度,取整数部分 ; 直接强制取整有精度风险 一方面是小数位损失 另一方面当浮点型数字超过整型数字最大值时,会发生溢出 实

    2024年02月14日
    浏览(27)
  • 语法-Java四舍五入等详解

    long round(double d) int round(float f) ​ Math.round()是Java中经典的舍入数字方法, 它返回的是整数 ,也就是说对浮点数四舍五入成整数。 ​ Java的最佳实践是优先使用BigDecimal而不是Math.round()来对Java的数字进行四舍五入。每当需要将数字四舍五入到小数点后n位时,首先考虑BigDecimal。

    2024年02月15日
    浏览(26)
  • C# 四舍五入 MidpointRounding.AwayFromZero

    四舍五入 在计算中 经常使用到,但是如果使用 Math.Round,只是五舍六入 在Math.Round内传入MidpointRounding.AwayFromZero枚举,就可以实现四舍五入的效果了, C#文档 https://docs.microsoft.com/zh-cn/dotnet/api/system.midpointrounding?view=net-6.0#system-midpointrounding-awayfromzero

    2024年02月13日
    浏览(39)
  • java四舍五入方法的基础学习

    以下均为自己的学习复习资料,如有不对的地方请发在评论区中,我会仔细思考并作出修改,大家共同学习,谢谢! 主要资料可以从java.base (Java SE 17 JDK 17) (oracle.com)(java文档)中查找到 四舍五入分为三种: 向上取整 、 向下取整 、 四舍五入 。 先给实例再谈理解: 向上取整

    2024年02月07日
    浏览(27)
  • 【Python中四舍五入round()方法】

    选择题 以下python代码分别输出什么? x=2.34677432 print(round(x)) print(round(x,3)) A: 2   2.34 B: 3   3.467 C: 2   2.347 D: 7   7.040   欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交

    2023年04月08日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包