В данном примере console.log выводит те значения, которые ему передали. То есть, размеры элемента, которые вы получили в коде и выводите на консоль, действительно являются дробными числами.
Это поведение характерно для браузера Chrome и родственных ему браузеров. На него даже заводили
баг, но этот баг был закрыт с вердиктом "так и должно быть". Хотя, например, в Firefox такой странности нет.
Дело в том, что тот же getBoundingClientRect() возвращает значения размеров, вычисленные после отрисовки страницы. Эти размеры измеряются в абстрактных пикселях, которые не ставятся в точное соответствие физическим точкам на экране, и действительно могут быть дробными.