fix bug: wrong getRate when original large the rate