计算不正确
Calculation is not calculating correctly
我想给另一个值加上或减去一个值。如果 a
是 7347.19
并且 t
是 - 并且 b
是 1354.34
,则将 a
数到 5992.85
。如果 t
是 +,则加 50,结果将是 8701.53
.
b
将始终倒数到 0。
问题在于,如果 t
为负,$('.counter').text()
将 return 7347.19-1354.34
,如果 t
为正,则 7347.19+1354.34
。 $('.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);
我该如何解决这个问题?
此操作:a + t + b
具有以下元素:
a
是一个数字
t
是一个字符串(其值为-
)
b
是一个数字
当你用+
组合它们时,Javascript会看到t
不是一个数字,而是一个字符串,所以它会做一个字符串concatenation(而不是数学运算)。这就是为什么你得到 7347.19-1354.34
要解决此问题,您需要放置一个 if
语句来检查 t
的值并决定您要执行的操作。像这样:
if (t == '+')
r = a + b;
else
r = a - b;
我想给另一个值加上或减去一个值。如果 a
是 7347.19
并且 t
是 - 并且 b
是 1354.34
,则将 a
数到 5992.85
。如果 t
是 +,则加 50,结果将是 8701.53
.
b
将始终倒数到 0。
问题在于,如果 t
为负,$('.counter').text()
将 return 7347.19-1354.34
,如果 t
为正,则 7347.19+1354.34
。 $('.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);
我该如何解决这个问题?
此操作:a + t + b
具有以下元素:
a
是一个数字t
是一个字符串(其值为-
)b
是一个数字
当你用+
组合它们时,Javascript会看到t
不是一个数字,而是一个字符串,所以它会做一个字符串concatenation(而不是数学运算)。这就是为什么你得到 7347.19-1354.34
要解决此问题,您需要放置一个 if
语句来检查 t
的值并决定您要执行的操作。像这样:
if (t == '+')
r = a + b;
else
r = a - b;