1 math 包中定义的常量

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func main() {
  7. fmt.Printf("float32的最大值是:%.f\n", math.MaxFloat32)
  8. fmt.Printf("float32的最小值是:%.f\n", math.SmallestNonzeroFloat32)
  9. fmt.Printf("float64的最大值是:%.f\n", math.MaxFloat64)
  10. fmt.Printf("float64的最小值是:%.f\n", math.SmallestNonzeroFloat64)
  11. fmt.Printf("Int8的最大值是:%d\n", math.MaxInt8)
  12. fmt.Printf("Int8的最小值是:%d\n", math.MinInt8)
  13. fmt.Printf("Int16的最大值是:%d\n", math.MaxInt16)
  14. fmt.Printf("Int16的最小值是:%d\n", math.MinInt16)
  15. fmt.Printf("Int32的最大值是:%d\n", math.MaxInt32)
  16. fmt.Printf("Int32的最小值是:%d\n", math.MinInt32)
  17. fmt.Printf("Int64的最大值是:%d\n", math.MaxInt64)
  18. fmt.Printf("Int64的最小值是:%d\n", math.MinInt64)
  19. fmt.Printf("Uint8的最大值是:%d\n", math.MaxUint8)
  20. fmt.Printf("Uint16的最大值是:%d\n", math.MaxUint16)
  21. fmt.Printf("Uint32的最大值是:%d\n", math.MaxUint32)
  22. //fmt.Println("Uint64的最大值是:", math.MaxUint64)
  23. fmt.Printf("圆周率默认为:%.200f\n", math.Pi)
  24. }
  25. result:
  26. $ go run golang-math.go
  27. float32的最大值是:340282346638528859811704183484516925440
  28. float32的最小值是:0
  29. float64的最大值是:1797693134862315708145274237317043567980705675258449965989174768031572607800285387605895586327668781715404589535143824642343213268894641827684675467035375049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368
  30. float64的最小值是:0
  31. Int8的最大值是:127
  32. Int8的最小值是:-128
  33. Int16的最大值是:32767
  34. Int16的最小值是:-32768
  35. Int32的最大值是:2147483647
  36. Int32的最小值是:-2147483648
  37. Int64的最大值是:9223372036854775807
  38. Int64的最小值是:-9223372036854775808
  39. Uint8的最大值是:255
  40. Uint16的最大值是:65535
  41. Uint32的最大值是:4294967295
  42. 圆周率默认为:3.14159265358979311599796346854418516159057617187500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

2 math 包中的使用方法

三角函数

正弦函数,反正弦函数,双曲正弦,反双曲正弦

  • func Sin(x float64) float64
  • func Asin(x float64) float64
  • func Sinh(x float64) float64
  • func Asinh(x float64) float64

一次性返回sin,cos

  • func Sincos(x float64) (sin, cos float64)

余弦函数,反余弦函数,双曲余弦,反双曲余弦

  • func Cos(x float64) float64
  • func Acos(x float64) float64
  • func Cosh(x float64) float64
  • func Acosh(x float64) float64

正切函数,反正切函数,双曲正切,反双曲正切

  • func Tan(x float64) float64
  • func Atan(x float64) float64 和 func Atan2(y, x float64) float64
  • func Tanh(x float64) float64
  • func Atanh(x float64) float64

幂次函数

  • func Cbrt(x float64) float64 //立方根函数
  • func Pow(x, y float64) float64 // x的幂函数
  • func Pow10(e int) float64 // 10根的幂函数
  • func Sqrt(x float64) float64 // 平方根
  • func Log(x float64) float64 // 对数函数
  • func Log10(x float64) float64 // 10为底的对数函数
  • func Log2(x float64) float64 // 2为底的对数函数
  • func Log1p(x float64) float64 // log(1 + x)
  • func Logb(x float64) float64 // 相当于log2(x)的绝对值
  • func Ilogb(x float64) int // 相当于log2(x)的绝对值的整数部分
  • func Exp(x float64) float64 // 指数函数
  • func Exp2(x float64) float64 // 2为底的指数函数
  • func Expm1(x float64) float64 // Exp(x) - 1

特殊函数

  • func Inf(sign int) float64 // 正无穷
  • func IsInf(f float64, sign int) bool // 是否正无穷
  • func NaN() float64 // 无穷值
  • func IsNaN(f float64) (is bool) // 是否是无穷值
  • func Hypot(p, q float64) float64 // 计算直角三角形的斜边长

类型转化函数

  • func Float32bits(f float32) uint32 // float32和unit32的转换
  • func Float32frombits(b uint32) float32 // uint32和float32的转换
  • func Float64bits(f float64) uint64 // float64和uint64的转换
  • func Float64frombits(b uint64) float64 // uint64和float64的转换

其他函数

  • func Abs(x float64) float64 // 绝对值函数
  • func Ceil(x float64) float64 // 向上取整
  • func Floor(x float64) float64 // 向下取整
  • func Mod(x, y float64) float64 // 取模
  • func Modf(f float64) (int float64, frac float64) // 分解f,以得到f的整数和小数部分
  • func Frexp(f float64) (frac float64, exp int) // 分解f,得到f的位数和指数
  • func Max(x, y float64) float64 // 取大值
  • func Min(x, y float64) float64 // 取小值
  • func Dim(x, y float64) float64 // 复数的维数
  • func J0(x float64) float64 // 0阶贝塞尔函数
  • func J1(x float64) float64 // 1阶贝塞尔函数
  • func Jn(n int, x float64) float64 // n阶贝塞尔函数
  • func Y0(x float64) float64 // 第二类贝塞尔函数0阶
  • func Y1(x float64) float64 // 第二类贝塞尔函数1阶
  • func Yn(n int, x float64) float64 // 第二类贝塞尔函数n阶
  • func Erf(x float64) float64 // 误差函数
  • func Erfc(x float64) float64 // 余补误差函数
  • func Copysign(x, y float64) float64 // 以y的符号返回x值
  • func Signbit(x float64) bool // 获取x的符号
  • func Gamma(x float64) float64 // 伽玛函数
  • func Lgamma(x float64) (lgamma float64, sign int) // 伽玛函数的自然对数
  • func Ldexp(frac float64, exp int) float64 // value乘以2的exp次幂
  • func Nextafter(x, y float64) (r float64) //返回参数x在参数y方向上可以表示的最接近的数值,若x等于y,则返回x
  • func Nextafter32(x, y float32) (r float32) //返回参数x在参数y方向上可以表示的最接近的数值,若x等于y,则返回x
  • func Remainder(x, y float64) float64 // 取余运算
  • func Trunc(x float64) float64 // 截取函数

3 math包中常用的方法

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func main() {
  7. /*
  8. 取绝对值,函数签名如下:
  9. func Abs(x float64) float64
  10. */
  11. fmt.Printf("[-3.14]的绝对值为:[%.2f]\n", math.Abs(-3.14))
  12. /*
  13. 取x的y次方,函数签名如下:
  14. func Pow(x, y float64) float64
  15. */
  16. fmt.Printf("[2]的16次方为:[%.f]\n", math.Pow(2, 16))
  17. /*
  18. 取余数,函数签名如下:
  19. func Pow10(n int) float64
  20. */
  21. fmt.Printf("10的[3]次方为:[%.f]\n", math.Pow10(3))
  22. /*
  23. 取x的开平方,函数签名如下:
  24. func Sqrt(x float64) float64
  25. */
  26. fmt.Printf("[64]的开平方为:[%.f]\n", math.Sqrt(64))
  27. /*
  28. 取x的开立方,函数签名如下:
  29. func Cbrt(x float64) float64
  30. */
  31. fmt.Printf("[27]的开立方为:[%.f]\n", math.Cbrt(27))
  32. /*
  33. 向上取整,函数签名如下:
  34. func Ceil(x float64) float64
  35. */
  36. fmt.Printf("[3.14]向上取整为:[%.f]\n", math.Ceil(3.14))
  37. /*
  38. 向下取整,函数签名如下:
  39. func Floor(x float64) float64
  40. */
  41. fmt.Printf("[8.75]向下取整为:[%.f]\n", math.Floor(8.75))
  42. /*
  43. 取余数,函数签名如下:
  44. func Floor(x float64) float64
  45. */
  46. fmt.Printf("[10/3]的余数为:[%.f]\n", math.Mod(10, 3))
  47. /*
  48. 分别取整数和小数部分,函数签名如下:
  49. func Modf(f float64) (int float64, frac float64)
  50. */
  51. Integer, Decimal := math.Modf(3.14159265358979)
  52. fmt.Printf("[3.14159265358979]的整数部分为:[%.f],小数部分为:[%.14f]\n", Integer, Decimal)
  53. }
  54. result:
  55. $ go run golang-math.go
  56. [-3.14]的绝对值为:[3.14]
  57. [2]的16次方为:[65536]
  58. 10的[3]次方为:[1000]
  59. [64]的开平方为:[8]
  60. [27]的开立方为:[3]
  61. [3.14]向上取整为:[4]
  62. [8.75]向下取整为:[8]
  63. [10/3]的余数为:[1]
  64. [3.14159265358979]的整数部分为:[3],小数部分为:[0.14159265358979]