首页 > 编程语言 >JavaScripts浮点数计算问题

JavaScripts浮点数计算问题

时间:2024-04-18 22:22:07浏览次数:32  
标签:console log 0.1 浮点数 0.2 计算 JavaScripts 0.3 math

JS数学运算精度问题

最近项目上JS做加减乘除这类的运算出现了精度不匹配的问题:

例如:

  • 0.1+0.2
  • ->0.30000000000000004
  • 0.3-0.2
  • ->0.09999999999999998
  • 0.3*2
  • ->0.6
  • 0.3*0.2
  • 0.06
  • 0.3/3
  • ->0.09999999999999999

Mathjs这个JS库可以解决这类问题:官网链接

以下是详细的步骤:

  1. 终端执行npm install mathjs

  2. 然后引入所有的库
    import * as math from "mathjs";

  3. 组件代码如下:

<template>
  <article class="article">
    <h3 class="title">{{ title }}</h3>
  </article>
</template>
<script>
import * as math from "mathjs";
export default {
  data() {
    return {
      title: "Hello World",
    };
  },
  methods: {
   
      oldNumberTest() {
      console.log("===oldNumberTest===");
      console.log("0.1+0.2=",0.1+0.2);
      console.log("0.89-0.2=",0.89-0.2);
      console.log("0.1*0.2=",0.1*0.2);
      console.log("0.3/3=",0.3/3);
    },
    mathNumber(){
      console.log("===mathNumber===");
      let sum=this.convert(math.add(math.fraction(0.1), math.fraction(0.2)))
      console.log("math.add(0.1,0.2)=",sum);
       
    },
    convert(value) {
      return(math.format(value, { fraction: "decimal" }));
    },
  },
  created() {
    this.oldNumberTest();
    this.mathNumber();
  },
};
</script>

<style lang="stylus" scoped>
.article
  .title
    border-bottom: solid 3px rgba(red, .2)
</style>

具体的函数请参阅官网

标签:console,log,0.1,浮点数,0.2,计算,JavaScripts,0.3,math
From: https://www.cnblogs.com/AngryLeesin/p/18144192

相关文章

  • 【计算几何】牛客专题第二章 二维基础
    元素的表示点1.复数类·complex<int/duble>·特点:慢,自带各种运算,不怎么用2.pair·自带排序·自由度不高·基本不在几何题目中使用3.结构体(推荐,常用)自由度高,成员函数,重载运算符structPoint{ doublex,y;};向量(直接用Point)向量点积与几何意义及应用\vec{......
  • 树2-二叉树拷贝, 遍历, 计算叶子结点和高度
    树2-二叉树拷贝,遍历,计算叶子结点和高度二叉树结点typedefstructBinaryNode{charch;structBinaryNode*lChild;structBinaryNode*rChild;}BinaryNode;//叶子结点的数量intsum;二叉树遍历前序//递归遍历(前序)voidRecursion(BinaryNode*roo......
  • 边缘计算智能分析网关V4地面垃圾AI检测算法介绍及场景应用
    在传统的卫生监管场景中,无法及时发现地面遗留的垃圾,通过人工巡逻的方式需要大量的人力、物力和时间,而且效率不高,并存在一定的滞后性,而采用地面垃圾AI检测算法则可以大大提高监管效率。TSINGSEE青犀AI智能分析网关V4的地面垃圾AI检测算法可以自动识别划定区域内遗留的垃圾,若达到设......
  • 推荐一个计算Grad-CAM的Python库
    前言类激活图CAM(classactivationmapping)用于可视化深度学习模型的感兴趣区域,增加了神经网络的可解释性。现在常用Grad-CAM可视化,Grad-CAM基于梯度计算激活图,对比传统的CAM更加灵活,且不需要修改模型结构。虽然计算grad-cam并不复杂,但是本着能导包就导包的原则,想着去用现成的......
  • 计算机的时间系统
    时间时间是一个非常抽象的概念,多少年来,吸引着无数科学家、物理学家、甚至哲学家花费毕生精力去解释时间的本质是什么,从宇宙大爆炸到时空相对论,从黑洞到量子力学,都能看到关于时间这个问题的身影。这里我们不探讨高深莫测的学术知识,只把目光放聚焦在计算机这个很小的范畴内。但要想......
  • 对于一个学渣选择了计算机科学与技术的问答
    1.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)?答:首先,本人第一次接触计算机这个世界上最精密的机器(本人感觉),是在小学的时候,一个银行退下来的台式计算机,那......
  • 计算自然数 num 的数根
    数根又称数字根,是自然数的一种性质,每个自然数都有一个数根。对于给定的自然数,反复将各个位上的数字相加,直到结果为一位数,则该一位数即为原自然数的数根。代码:publicclassSolution{publicintAddDigits(intnum){while(num>=10){intsum=......
  • 最高法--质量保证金应按照《工程质量保修书》的约定从质量保修期满后开始计算利息系混
    (2020)最高法民申3252号  河南国安建设集团有限公司、河南亚星置业集团有限公司建设工程施工合同纠纷再审审查与审判监督民事裁定书本院认为:(三)关于二审判决认定的工程款利息起算点是否正确的问题。双方在《补充协议》第26.1.1.3条中约定,“剩余的5%作为质量保证金,待竣工验收合......
  • 安装计算机程序出现fldrvw71.ocx未注册或找不到控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个fldrvw71.ocx文件(挑选合适的版本文件)把它放入......
  • 计算机软件弹出缺少ComboBox.ocx文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个ComboBox.ocx文件(挑选合适的版本文件)把它放入......