mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 12:52:28 +08:00
4.0 KiB
4.0 KiB
Mathutil
mathutil 包实现了一些数学计算的函数.
源码:
https://github.com/duke-git/lancet/blob/v1/mathutil/mathutil.go
用法:
import (
"github.com/duke-git/lancet/mathutil"
)
目录
Documentation
Exponent
指数计算(x的n次方)
函数签名:
func Exponent(x, n int64) int64
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.Exponent(10, 0)) //1
fmt.Println(mathutil.Exponent(10, 1)) //10
fmt.Println(mathutil.Exponent(10, 2)) //100
}
Fibonacci
计算斐波那契数列的第n个数
函数签名:
func Fibonacci(first, second, n int) int
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.Fibonacci(1, 1, 1)) //1
fmt.Println(mathutil.Fibonacci(1, 1, 2)) //1
fmt.Println(mathutil.Fibonacci(1, 1, 3)) //2
fmt.Println(mathutil.Fibonacci(1, 1, 4)) //3
fmt.Println(mathutil.Fibonacci(1, 1, 5)) //5
}
Factorial
计算阶乘
函数签名:
func Factorial(x uint) uint
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.Factorial(0)) //1
fmt.Println(mathutil.Factorial(1)) //1
fmt.Println(mathutil.Factorial(2)) //2
fmt.Println(mathutil.Factorial(3)) //6
}
Percent
计算百分比,保留n位小数
函数签名:
func Percent(val, total float64, n int) float64
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.Percent(1, 2, 2)) //1
fmt.Println(mathutil.Percent(0.1, 0.3, 2)) //33.33
}
RoundToFloat
四舍五入,保留n位小数
函数签名:
func RoundToFloat(x float64, n int) float64
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.RoundToFloat(0, 0)) //0
fmt.Println(mathutil.RoundToFloat(0, 1)) //0
fmt.Println(mathutil.RoundToFloat(0.124, 2)) //0.12
fmt.Println(mathutil.RoundToFloat(0.125, 2)) //0.13
fmt.Println(mathutil.RoundToFloat(0.125, 3)) //0.125
}
RoundToString
四舍五入,保留n位小数,返回字符串
函数签名:
func RoundToString(x float64, n int) string
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.RoundToString(0, 0)) //"0"
fmt.Println(mathutil.RoundToString(0, 1)) //"0.0:
fmt.Println(mathutil.RoundToString(0.124, 2)) //"0.12"
fmt.Println(mathutil.RoundToString(0.125, 2)) //"0.13"
fmt.Println(mathutil.RoundToString(0.125, 3)) //"0.125"
}
TruncRound
截短n位小数(不进行四舍五入)
函数签名:
func TruncRound(x float64, n int) float64
例子:
package main
import (
"fmt"
"github.com/duke-git/lancet/mathutil"
)
func main() {
fmt.Println(mathutil.TruncRound(0, 0)) //0
fmt.Println(mathutil.TruncRound(0, 1)) //0
fmt.Println(mathutil.TruncRound(0.124, 2)) //0.12
fmt.Println(mathutil.TruncRound(0.125, 2)) //0.12
fmt.Println(mathutil.TruncRound(0.125, 3)) //0.125
}