go-ml.dev/pkg/base@v0.0.0-20200610162856-60c38abac71b/fu/round.go (about)

     1  package fu
     2  
     3  func Round64(v float64, n int) float64 {
     4  	k := float64(10)
     5  	for i := 1; i < n; i++ {
     6  		k *= 10
     7  	}
     8  	return float64(int64(v*k)) / k
     9  }
    10  
    11  func Round64s(v []float64, n int) []float64 {
    12  	r := make([]float64, len(v))
    13  	for i, x := range v {
    14  		r[i] = Round64(x, n)
    15  	}
    16  	return r
    17  }
    18  
    19  func Round32(v float32, n int) float32 {
    20  	k := float32(10)
    21  	for i := 1; i < n; i++ {
    22  		k *= 10
    23  	}
    24  	return float32(int32(v*k)) / k
    25  }
    26  
    27  func Round32s(v []float32, n int) []float32 {
    28  	r := make([]float32, len(v))
    29  	for i, x := range v {
    30  		r[i] = Round32(x, n)
    31  	}
    32  	return r
    33  }