2 Star 2 Fork 9

王布衣/gox

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
modf.go 709 Bytes
Copy Edit Raw Blame History
王布衣 authored 2023-08-13 11:51 . 升级go版本到1.21.0
package math32
// Modf returns integer and fractional floating-point numbers
// that sum to f. Both values have the same sign as f.
//
// Special cases are:
//
// Modf(±Inf) = ±Inf, NaN
// Modf(NaN) = NaN, NaN
func Modf(f float32) (int float32, frac float32) {
return modf(f)
}
func modf(f float32) (int float32, frac float32) {
if f < 1 {
switch {
case f < 0:
int, frac = Modf(-f)
return -int, -frac
case f == 0:
return f, f // Return -0, -0 when f == -0
}
return 0, f
}
x := Float32bits(f)
e := uint(x>>shift)&mask - bias
// Keep the top 9+e bits, the integer part; clear the rest.
if e < 32-9 {
x &^= 1<<(32-9-e) - 1
}
int = Float32frombits(x)
frac = f - int
return
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/quant1x/gox.git
git@gitee.com:quant1x/gox.git
quant1x
gox
gox
v1.17.8

Search