zoukankan      html  css  js  c++  java
  • [JavaScript]JS调用math.js开源库,进行分数的运算

    最近写了一个纯静态的在线四则运算检测,在这个过程中我发现分数的运算比较麻烦,所以就在github上找到了这个math.js库

    这个库也是相当的强大

    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/4.0.1/math.min.js"></script>
    这个就是cdnjs的地址,当然也可以去github或者官网上下载
    http://mathjs.org/
    我阅读的官方的文档之后,发现解释文档里介绍分数运算的部分实在是太少了
    而且按照文档里的方法,我得到的运算结果是一个小数,而不是分数
    所以我就简单分析了一下运算函数的返回值
    结果为一个对象
    其中包括s、n、d三个属性
    s(符号)如果为1表示为正值 -1则表示为负值
    n  (分子)
    d  (分母)
    我这里简单实现了一个结果转分数字符串
    var fuhao;
          if(FuHao[i]==1)
          {
            fuhao = '+';
            Result[i] = Number1[i]+Number2[i];
          }
          else if(FuHao[i]==0)
          {
            fuhao = '-';
            Result[i] = Number1[i]-Number2[i];
          }
          else if(FuHao[i]==2)
          {
            fuhao = 'x';
            Result[i] = Number1[i]*Number2[i];
          }
          else
          {
            fuhao = "÷";
            Result[i] = Number1[i]/Number2[i];
          }
          text.value = text.value + Number1[i]+" "+fuhao+" "+Number2[i]+" = 
    ";
        }
        for(var i=0;i<5;i++)
        {
          var fuhao;
          if(FuHao_FenShu[i]==1)
          {
            fuhao = '+';
            var str = "";
            var temp = math.add(math.fraction(Number_FenShu1[i]),math.fraction(Number_FenShu2[i]));
            if(temp.s == -1)
            {
              str = str+"-1";
            }
            str = str + temp.n +"/" +temp.d;
            Result_FenShu[i] = str;
          }
          else if(FuHao_FenShu[i]==0)
          {
            fuhao = '-';
            var str = "";
            var temp = math.subtract(math.fraction(Number_FenShu1[i]),math.fraction(Number_FenShu2[i]));
            if(temp.s == -1)
            {
              str = str+"-1";
            }
            str = str + temp.n +"/" +temp.d;
            Result_FenShu[i] = str;
          }
          else if(FuHao_FenShu[i]==2)
          {
            fuhao = 'x';
            var str = "";
            var temp = math.multiply(math.fraction(Number_FenShu1[i]),math.fraction(Number_FenShu2[i]));
            if(temp.s == -1)
            {
              str = str+"-1";
            }
            str = str + temp.n +"/" +temp.d;
            Result_FenShu[i] = str;
          }
          else
          {
            fuhao = '÷';
            var str = "";
            var temp = math.divide(math.fraction(Number_FenShu1[i]),math.fraction(Number_FenShu2[i]));
            if(temp.s == -1)
            {
              str = str+"-1";
            }
            str = str + temp.n +"/" +temp.d;
            Result_FenShu[i] = str;
          }
          text.value = text.value + Number_FenShu1[i]+" "+fuhao+" "+Number_FenShu2[i]+" = 
    ";
        }
  • 相关阅读:
    Nacos 1.3.0版本部署连接mysql 8+
    Java Certificate证书问题
    UIKit之浅析UIButton
    Xcode Coule not launch "aaa" press launch failed:timed out waiting for app launch
    Cocos2d-x 安装教程for mac(Xcode)
    关于继承UITableViewController若干问题
    Table的分割线偏移量设置 及其 UIEdgeInset详解
    retain、strong、weak、assign区别
    iOS 使用xib创建cell的两种初始化方式
    No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
  • 原文地址:https://www.cnblogs.com/lee-li/p/8624283.html
Copyright © 2011-2022 走看看