powの結果がdoubleだろ?
100そのものをdoubleで表現できなくて結果が100に限りなく近い99.999????みたいなデータが返ってくるだろ?
それをintにキャストすると小数点以下切り捨てられて99になるだろ?
intにキャストする前に0.5を足せばいいだろ?
いいだろ?