parseInt строит свой первый аргумент, если аргумент еще не является строкой. 0.000008 указывает на '0.000008', но 0.0000008 указывает на '8e-7'.
Если parseInt обнаруживает недопустимый символ на входе, он игнорирует этот символ и все после него. . и e являются недопустимыми для базы 10 (и . будет недопустимым для любой базы), поэтому parseInt видит '0.000008' как '0' и '8e-7' как '8'.
Я не знаю, что вы пытались сделать здесь, но parseInt не является инструментом для этого.