以下の記事を見るとどうやらrubyのバージョンが2.4未満だとround関数が正しい値を返さないことがあるらしい。
irb(main):001:0> 1024.975.round(2) => 1024.97 irb(main):002:0> 1023.975.round(2) => 1023.98
Ruby - roundで四捨五入にならない場合の理由を教えてください|teratail
RubyとPythonとC#のround関数のバグっぽい挙動について - hnwの日記
floating point - Ruby Float#round behaviour change after update - Stack Overflow
以下の記事によると2.4未満のバージョンを利用しているときは、BigDecimalでroundすれば良さげ。
irb(main):001:0> BigDecimal('1024.975').round(2).to_f => 1024.98