计算未正确计算

时间:2018-02-27 23:14:40

标签: jquery math jquery-animate

我想将值添加或减去另一个值。如果a7347.19t为 - 且b1354.34,则将a计为5992.85。如果t为+,则添加50,结果为8701.53

b将始终倒数至0.

问题是如果$('.counter').text()为负,则7347.19-1354.34将返回t,如果7347.19+1354.34为正,则t将返回$('.counter').text()。在倒计时期间,NaN也会显示function animate_sum(element, number_, interval_) { $({someValue: element.text()}).animate({someValue: number_}, { duration: interval_, step: function() { element.text(Math.floor(this.someValue + 1)); }, complete : function() { element.text(number_); } }); } setTimeout(function() { a = $('.counter').text(); b = $('.counter-difference').text(); t = $('.counter-difference').attr('data-type'); animate_sum($('.counter'), (a + t + b), 1000) animate_sum($('.counter-difference'), 0, 1000) }, 1000);

{{1}}

Demo

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

此操作:a + t + b具有以下元素:

  • a是一个数字
  • t是一个字符串(其值为-
  • b是一个数字

当您使用+组合它们时,Javascript会看到t不是数字,而是字符串,因此它会执行字符串连接(而不是数学运算)。这就是你获得7347.19-1354.34

的原因

要解决此问题,您需要输入if语句来检查t的值,并确定要执行的操作。像这样:

if (t == '+')
    r = a + b;
else
    r = a - b;