code: func RoundFrac(t gotime.Time, fsp int) (gotime.Time, error) {
  	_, err := checkFsp(fsp)
  	if err != nil {
  		return t, errors.Trace(err)
  	}
  	return t.Round(gotime.Duration(math.Pow10(9-fsp)) * gotime.Nanosecond), nil
  }
docs: // RoundFrac rounds fractional seconds precision with new fsp and returns a new one.
  // We will use the “round half up” rule, e.g, >= 0.5 -> 1, < 0.5 -> 0,
  // so 2011:11:11 10:10:10.888888 round 0 -> 2011:11:11 10:10:11
  // and 2011:11:11 10:10:10.111111 round 0 -> 2011:11:11 10:10:10