3

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:

Claire Nielsen
  • 1,881
  • 1
  • 14
  • 31
davidhartman00
  • 353
  • 4
  • 14

2 Answers2

5

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)
Ori Drori
  • 183,571
  • 29
  • 224
  • 209
1

Probably, you divide by zero. Right?

enter image description here