func Round(val float64, roundOn float64, places int) (newVal float64) {
	var round float64
	pow := math.Pow(10, float64(places))
	digit := pow * val
	_, div := math.Modf(digit)
	if div >= roundOn {
		round = math.Ceil(digit)
	} else {
		round = math.Floor(digit)
	}
	newVal = round / pow
	return
}
Round a number
package zxcvbnmath
import "math"
func NChoseK(n, k float64) float64 {
	if k > n {
		return 0
	} else if k == 0 {
		return 1
	}
	var r float64 = 1
	for d := float64(1); d <= k; d++ {
		r *= n
		r /= d
		n--
	}
	return r
}