【问题标题】:how to handle NaN value in mathjs.evaluate如何在 mathjs.evaluate 中处理 NaN 值
【发布时间】:2020-11-19 04:59:31
【问题描述】:
console.log(mathjs.evaluate("(goodCount/(goodCount+reject_count))>0.99", {
  goodCount: 0,
  reject_count: 0,
  Total_Planned_time: 10
}))

我的问题是,如果 goodCount 和 reject_count 为零,此函数返回 NaN 但我希望函数为 true 或 false 如果 NaN 值返回 true,您能否建议如何编写条件。

提前致谢

【问题讨论】:

标签: javascript node.js mongoose mongodb-query mathjs


【解决方案1】:

你的意思是这样的吗?

(async () => {
  const mathjs = await import("https://cdn.skypack.dev/pin/mathjs@v7.1.0-lgPTcYfuwGwbFfYrv7Km/min/mathjs.js");

  function evaluateExpression() {
    const result = mathjs.evaluate("goodCount / (goodCount + reject_count)", {
      goodCount: 0,
      reject_count: 0,
      Total_Planned_time: 10,
    });

    if (isNaN(result)) {
      return true;
    }

    return false;
  }

  document.querySelector("button").addEventListener("click", (ev) => {
    console.log(evaluateExpression());
  });
})();
<button>Evaluate the expression</button>

【讨论】:

  • "(goodCount/(goodCount+reject_count))>0.99" con 你请在这个字符串中写条件,所以 mathjs.evaluate 给我返回值 true
  • 我实际上对 MathJS 并不熟悉。让我检查一下文档。
  • 哦,你为什么要使用外部库而不是将其编写为 JavaScript 表达式(即goodCount / (goodCount + reject_count) > 0.99)?
  • @lakshitsingh 你可以输出 Julia 写到 console.log 的函数,console.log(evaluateExpression()); 试图把它写到你的字符串中可能会更困难。
  • 我也无法重现您的问题。当我尝试您在原始帖子中包含的代码时,it returns false.
【解决方案2】:

一直在尝试解决类似的问题,这是我用它来解决您的问题的方法...

math.evaluate("r = (goodCount / (goodCount + reject_count)); isNaN(r) ? true : r > 0.99", {
  goodCount: 0,
  reject_count: 0,
  Total_Planned_time: 10
}).entries[0];

goodCountreject_count 都为零时,这将返回true

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2021-10-01
    • 1970-01-01
    • 2021-06-15
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2019-08-15
    相关资源
    最近更新 更多