github.com/jxskiss/gopkg/v2@v2.14.9-0.20240514120614-899f3e7952b4/unsafe/forceexport/testpkg/math_floor.go (about)

     1  package testpkg
     2  
     3  import "math"
     4  
     5  func Floor(x float64) float64 {
     6  	return floor(x)
     7  }
     8  
     9  func floor(x float64) float64 {
    10  	if x == 0 || math.IsNaN(x) || math.IsInf(x, 0) {
    11  		return x
    12  	}
    13  	if x < 0 {
    14  		d, fract := math.Modf(-x)
    15  		if fract != 0.0 {
    16  			d = d + 1
    17  		}
    18  		return -d
    19  	}
    20  	d, _ := math.Modf(x)
    21  	return d
    22  }