You can use modulus to calculate the remainder:
decimal d = rate % 1 >= .7m ? Math.Ceiling(rate) : rate;
You could use this for negative values:
return rate >= 0
? (rate % 1 >= .7m ? Math.Ceiling(rate) : rate)
: (Math.Abs(rate % 1) >= .3m ? Math.Floor(rate) : rate);