Ну, есть немного ограничений на то, какие числа Javascript может обрабатывать (пока мы не получим BigInt64 или если вы используете библиотеку, подобную decimal.js ).Так как он не может обрабатывать больше десятичных знаков, он просто усекается в точке.Если вы сделаете большее число, вы увидите меньше десятичных знаков.Если это приводит к тому, что число «точно» равно 99, в вашем случае javascript будет правильно отображать его как 99, а не 99.00000000000, поскольку у нас есть только число, а не число с плавающей запятой, десятичное число, целое и т. Д.
parseFloat(1234567.123456789);
// 1234567.123456789
parseFloat(12345678.123456789);
// 12345678.12345679
parseFloat(123456789.123456789);
// 123456789.12345679
parseFloat(1234567891.123456789);
// 1234567891.1234567
parseFloat(12345678912.123456789);
// 12345678912.123457
parseFloat(123456789123.123456789);
// 123456789123.12346
Править: на самом деле оно кажется округлым, а не опускающимся.
Надеюсь, это все объясняет.