【问题标题】:Always NAN as result in adding two values in Jquery总是 NAN 作为在 Jquery 中添加两个值的结果
【发布时间】:2014-01-15 00:34:05
【问题描述】:

我很难找到始终获取此公式的 NaN 值的方法/可能的原因,但不知道为什么。这是我的代码:

var ebit = +$("#totalBillableAmount").text() - +$("#estCostPerDay").text();
alert(ebit);

输出:NaN

我也试过这个代码

var ebit = +parseFloat($("#totalBillableAmount").text()) - +parseFloat($("#estCostPerDay").text());
    alert(ebit);
    $("#estEbitPerDay").append(ebit);

   $("#totalBillableAmount").text()= "2,013.700";
   $("#estCostPerDay").text() = "5,557.82"; 

输出:-3

请帮忙!

【问题讨论】:

  • 你试过 parseInt($("#totalBillableAmount").text()) 吗?
  • ...如果你的数字不是整数,你可以使用parseFloat()
  • 文本中必须包含数字以外的内容。
  • parseInt 和 Float 似乎有相同的输出“-3”
  • Alije,这并不意味着它实际上是一个数字。在 cmets 中查看我的次要小提琴。

标签: jquery add


【解决方案1】:

您的号码中有逗号。这些被解释为strings

您正在尝试添加字符串。尝试使用类似的东西:

parseFloat($('#totalBillableAmount').text() - $('#estCostPerDay').text());

你的方法是这样做的:

(即"5,557.82" - "2,013.700"

不是这个:

(即5557.82 - 2013.700


编辑 - 这就是你想要的答案。

http://jsfiddle.net/Wq96P/9/

特拉维斯是对的。您的 divs 中必须有一些非数字字符 - 即 commas

【讨论】:

  • 只是因为它在小提琴中工作,并不意味着现实世界的浏览器会以相同的方式解释它。 LOOK AT THIS FIDDLE
  • jsfiddle.net/Wq96P/5 转换是隐式的。问题是没有一些常规数字作为文本。问题是文本中除了数字之外还有其他内容。
  • 现在我玩了它,我忘记了 NaN 是一个数字......很好的呼唤。
  • 你是对的,在分析数据后我意识到这都是字符串 :) 谢谢。它现在可以工作了。
  • 先生还有另一个问题。当我尝试使用您的解决方案代码时,例如这两个数字是 22,150.7 和 2,013.70,但输出是 22.00..这里有什么想法吗?
【解决方案2】:

尝试使用parseInt()

var ebit = parseInt($("#totalBillableAmount").text()) - +parseInt($("#estCostPerDay").text());
alert(ebit);

【讨论】:

  • 如果您使用parseInt,则不再需要在每个数字的开头使用+,因为这是将每个字符串隐式转换为数字。
【解决方案3】:

问题解决:)

只要有这个代码..

   var totalBillAmt = parseFloat($("#totalBillableAmount").text().replace(",", ""))  +    parseFloat($("#estCostPerDay").text().replace(",", ""));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多