code: func funcRound(vals []Value, args Expressions, enh *EvalNodeHelper) Vector {
  	vec := vals[0].(Vector)
  	// round returns a number rounded to toNearest.
  	// Ties are solved by rounding up.
  	toNearest := float64(1)
  	if len(args) >= 2 {
  		toNearest = vals[1].(Vector)[0].Point.V
  	}
  	// Invert as it seems to cause fewer floating point accuracy issues.
  	toNearestInverse := 1.0 / toNearest
  
  	for _, el := range vec {
  		v := math.Floor(el.V*toNearestInverse+0.5) / toNearestInverse
  		enh.out = append(enh.out, Sample{
  			Metric: enh.dropMetricName(el.Metric),
  			Point:  Point{V: v},
  		})
  	}
  	return enh.out
  }
docs: // === round(Vector ValueTypeVector, toNearest=1 Scalar) Vector ===