【问题标题】:why three numerical values are not adding in javascript [duplicate]为什么三个数值没有在javascript中添加[重复]
【发布时间】:2019-12-20 20:07:15
【问题描述】:

我想添加 3 个价格,例如 18+10+5,但它返回的答案是 18105 而不是 33。如代码中所示,totalPrice、extraFoodPrice、extraNonFoodPrice 是数字类型。

finalAmount() {
return this.totalPrice + this.extraFoodPrice + this.extraNonFoodPrice;
}

【问题讨论】:

  • 可能是那些变量类型是字符串。如果这些是字符串,请使用 stackoverflow.com/questions/14667713/…
  • return parseInt(this.totalPrice) + parseInt(this.extraFoodPrice) + parseInt(this.extraNonFoodPrice);

标签: javascript


【解决方案1】:

变量可能是字符串。 尝试在每个变量前添加一个额外的 + 以转换为数字,或使用 parseInt。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    显然,它们是字符串。检查可能影响这些的代码,可能将其更改为字符串并修复这些问题。在这里分享代码也会很有帮助。

    【讨论】:

      【解决方案3】:

      至少totalPrice 和/或extraFoodPrice 是字符串而不是数字。您可能从代码中的 <input> 字段中获取此值。您应该先将其解析为数字:

      finalAmount() {
        return (+this.totalPrice || 0) + (+this.extraFoodPrice || 0) + (+this.extraNonFoodPrice || 0);
      }
      

      【讨论】:

        【解决方案4】:

        您似乎在添加字符串。

        例如,尝试使用 parseFloat 将值显式转换为数字。

        这里有确切的语法和详细信息:https://gomakethings.com/converting-strings-to-numbers-with-vanilla-javascript/

        【讨论】:

        • 注意:对于价格,你当然应该使用浮点数而不是整数
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 2020-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-01
        • 2022-01-19
        相关资源
        最近更新 更多