Reputation: 353
Sorry in advance is this is an obvious question. I am dividing two variables and receiving Infinity as my result. Here are the details:
typeof a //'number'
typeof b //'number'
typeof (a-b) //'number'
typeof ((a-b)/(b)) //'number'
a - b = xxx.xxxxx //this works
(a - b)/b = Infinity
Here are some more details:
a and b are five decimal places (XXX.XXXXX)
// the variables are generated from ....
var z = document.getElementById('foo').getBoundingClientRect()
var y = document.getElementById('bar').getBoundingClientRect()
var a = z.x
var b = y.x
foo
is a div and bar
is a table
a
is generated outside a function
b
is generated inside the function from an .on('scroll', ....)
<div id="foo">
<table id='bar'>
</table>
</div>
I am assuming my issues comes from the typof = 'number'
.
In trying to find my answer in the following:
Upvotes: 3
Views: 794
Reputation: 191976
It happens because b
is 0, and dividing by 0 in JS returns Infinity. In addition the type of Infinity is number.
var a = 5
var b = 0
console.log('a ', typeof a);
console.log('b ', typeof b);
console.log('(a-b)/(b) ', (a-b)/(b))
console.log('(a - b)/b ', (a - b)/b)
console.log('typeof Infinity ', typeof Infinity)
Upvotes: 5