Результат 148.2 * 100
, скорее всего, не совсем 14820, а скорее немного меньше этого значения из-за ошибки с плавающей запятой.Таким образом, оно будет усечено до 14819.
Значение можно увидеть с помощью этого:
>sprintf("%.19f", 148.2*100)
=> "14819.9999999999981810106"