xnum

package
v0.1.19 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: BSD-3-Clause-Clear Imports: 2 Imported by: 0

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 InDistance added in v0.1.8

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

判断坐标点p是否在多边形dic区域内

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

func IsEqualFloat

func IsEqualFloat(f1, f2 any) bool

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

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

func Price

func Price(v float64) float64

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

v	需要保留位数的金额

func PriceHalf

func PriceHalf(v float64) float64

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

v	需要保留位数的金额

Types

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