xnum

package module
v0.0.0-...-5661bb6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2023 License: MIT Imports: 3 Imported by: 0

README

xnum

常用数字处理工具类

Documentation

Overview

数值运算相关支持包

Index

Constants

View Source
const EARTH_RADIUS = 6378.137

地球半径大小 用于计算两个经纬度间的距离

View Source
const FLOAT_EQUAL_MIN = 0.0000001

浮点数比较相等时的最小值

因为浮点数的精度存在丢失问题,所以浮点数的相同不能比较绝对的相等,而应该是在某一范围内相同

所以此处的相同浮点数范围表示为 0.000,000,1

Variables

This section is empty.

Functions

func Discount

func Discount(price float64, discount uint8) float64

计算金额的折扣费率 此处使用math.Floor进行向下取整的方式,即低于0.01的部分直接舍弃

price		待计算的金额
discount	费率,0~100

func Divide

func Divide(sum1, sum2 float64) float64

金额 除以

sum1	被除数
sum2	除数

func EarthDistance

func EarthDistance(lat1, lng1, lat2, lng2 float64) float64

计算经纬度之间的距离【返回单位:m】 计算公式:C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

lat1	坐标点1的纬度
lng1	坐标点1的经度
lat1	坐标点2的纬度
lng2	坐标点2的经度

func EarthDistanceGps

func EarthDistanceGps(a1, a2 *GPS) float64

计算两点的经纬度

a1	坐标点a1的经纬度
a2	坐标点a2的经纬度

func Equally

func Equally(money float64, len int) (float64, float64)

金额平分拆分 小于 等于 1 的均直接返回money

money	金额
len	拆分份数

func InArray

func InArray(s any, arr any) bool

判断s是否在arr数组中 PS: 类型不统一的话也会返回false,如s为int,但是arr不为[]int则也会返回false

s	待判断的变量,支持类型:bool,string,float64,float32,int,uint,int8,uint8,int16,uint16,int32,uint32,int64,uint64
arr	待判断的数组,需要对应s的类型,即s为string时arr为[]string

func InDistance

func InDistance(p GPS, dic []GPS) bool

判断坐标点p是否在多边形dic区域内【坐标需要为统一坐标系坐标,即p和dic都是高德/百度/GPS等坐标】

p	要判断的坐标点
dic	多边形经纬度

func IsEqualFloat

func IsEqualFloat(f1, f2 any) bool

判断两个浮点数是否相等【json.Number时,f1和f2都会转化为float64进行计算】

f1	待比较的浮点数
f2	待比较的浮点数

func Price

func Price(v float64) float64

金额字段取整(保留两位小数)(舍弃)

v	需要保留位数的金额

func PriceHalf

func PriceHalf(v float64) float64

金额字段取整(保留两位小数)(四舍五入)

v	需要保留位数的金额

func Regedit

func Regedit(c *Config)

模块注册函数,用于注入错误处理逻辑

func RemoveByteArray

func RemoveByteArray(s byte, arr []byte) []byte

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveComplex128Array

func RemoveComplex128Array(s complex128, arr []complex128) []complex128

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveComplex64Array

func RemoveComplex64Array(s complex64, arr []complex64) []complex64

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveFloat32Array

func RemoveFloat32Array(s float32, arr []float32) []float32

移除数组中的元素

s	待移除的变量
arr	待移除变量的数组

func RemoveFloat64Array

func RemoveFloat64Array(s float64, arr []float64) []float64

移除数组中的元素

s	待移除的变量
arr	待移除变量的数组

func RemoveInt16Array

func RemoveInt16Array(s int16, arr []int16) []int16

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveInt32Array

func RemoveInt32Array(s int32, arr []int32) []int32

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveInt64Array

func RemoveInt64Array(s int64, arr []int64) []int64

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveInt8Array

func RemoveInt8Array(s int8, arr []int8) []int8

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveIntArray

func RemoveIntArray(s int, arr []int) []int

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveJsonNumberArray

func RemoveJsonNumberArray(s json.Number, arr []json.Number) []json.Number

移除数组中的元素

s	待移除的变量
arr	待移除变量的数组

func RemoveRuneArray

func RemoveRuneArray(s rune, arr []rune) []rune

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveStringArray

func RemoveStringArray(s string, arr []string) []string

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveUint16Array

func RemoveUint16Array(s uint16, arr []uint16) []uint16

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveUint32Array

func RemoveUint32Array(s uint32, arr []uint32) []uint32

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveUint64Array

func RemoveUint64Array(s uint64, arr []uint64) []uint64

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveUint8Array

func RemoveUint8Array(s uint8, arr []uint8) []uint8

移除数组中的元素

s	待移除的变量
arr	待移除变量的数组

func RemoveUintArray

func RemoveUintArray(s uint, arr []uint) []uint

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

func RemoveUintptrArray

func RemoveUintptrArray(s uintptr, arr []uintptr) []uintptr

移除数组中的元素

s       待移除的变量
arr     待移除变量的数组

Types

type Config

type Config struct {
	PanicLog func(msg string, err error) // 错误日志记录
}

错误记录模块

type GPS

type GPS struct {
	Latitude  float64 `json:"latitude" form:"latitude" gorm:"column:latitude;type:double;comment:纬度"`    // 纬度  国内数值较小的数字4~53.5
	Longitude float64 `json:"longitude" form:"longitude" gorm:"column:longitude;type:double;comment:经度"` // 经度  国内数值较大的数字73.5~135
}

经纬度GPS坐标

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL