commit
40664f145a
@ -0,0 +1,17 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: clone
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Test
|
||||||
|
image: golang:1.18
|
||||||
|
commands:
|
||||||
|
- go env -w GO111MODULE=on
|
||||||
|
- go env -w GOPROXY=https://goproxy.cn,direct
|
||||||
|
- go test -v ./...
|
||||||
|
- name: Benchmark
|
||||||
|
image: golang:1.18
|
||||||
|
commands:
|
||||||
|
- go env -w GO111MODULE=on
|
||||||
|
- go env -w GOPROXY=https://goproxy.cn,direct
|
||||||
|
- go test -bench=. -benchmem
|
@ -0,0 +1,9 @@
|
|||||||
|
.env
|
||||||
|
.git
|
||||||
|
.svn
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
*.log
|
||||||
|
goinit.sh
|
||||||
|
gomod.sh
|
||||||
|
/vendor/
|
@ -0,0 +1,5 @@
|
|||||||
|
module go.dtapp.net/godecimal
|
||||||
|
|
||||||
|
go 1.18
|
||||||
|
|
||||||
|
require go.dtapp.net/gostring v1.0.3
|
@ -0,0 +1,2 @@
|
|||||||
|
go.dtapp.net/gostring v1.0.3 h1:KSOq4D77/g5yZN/bqWfZ0kOOaPr/P1240vg03+XdENI=
|
||||||
|
go.dtapp.net/gostring v1.0.3/go.mod h1:+ggrOvgQDQturi1QGsXEpyRN/ZPoRDaqhMujIk5lrgQ=
|
@ -0,0 +1,115 @@
|
|||||||
|
package godecimal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go.dtapp.net/gostring"
|
||||||
|
"math"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Decimal 四舍五入
|
||||||
|
func Decimal(value float64) float64 {
|
||||||
|
value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", value), 64)
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Round 四舍五入
|
||||||
|
func Round(f float64, n int) float64 {
|
||||||
|
n10 := math.Pow10(n)
|
||||||
|
return math.Trunc((f+0.5/n10)*n10) / n10
|
||||||
|
}
|
||||||
|
|
||||||
|
// RoundYInt64 四舍五入
|
||||||
|
func RoundYInt64(y int64, n int) float64 {
|
||||||
|
return Round(float64(y/100), n)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RoundYString 四舍五入
|
||||||
|
func RoundYString(y string, n int) float64 {
|
||||||
|
return Round(gostring.ToFloat64(y)/100, n)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Multiply 相乘
|
||||||
|
func Multiply(y, x float64) float64 {
|
||||||
|
return Round(y*x, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PddCouponAmount 优惠券金额
|
||||||
|
func PddCouponAmount(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PddCouponProportion 拼多多佣金比率
|
||||||
|
func PddCouponProportion(y int64) float64 {
|
||||||
|
return Round(float64(y)/10, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PddGoodsOriginalPrice 拼多多商品原价
|
||||||
|
func PddGoodsOriginalPrice(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PddGoodsPrice 拼多多商品券后价
|
||||||
|
func PddGoodsPrice(y, x float64) float64 {
|
||||||
|
return Round(y-x, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PddCommission 拼多多佣金
|
||||||
|
func PddCommission(y, x float64) float64 {
|
||||||
|
return Round((y*x)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TbCouponAmount 淘宝优惠券金额
|
||||||
|
func TbCouponAmount(y int64) float64 {
|
||||||
|
return Round(float64(y), 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TbCouponProportion 淘宝佣金比率
|
||||||
|
func TbCouponProportion(y string) float64 {
|
||||||
|
return Round(gostring.ToFloat64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TbGoodsOriginalPrice 淘宝商品原价
|
||||||
|
func TbGoodsOriginalPrice(y string) float64 {
|
||||||
|
return Round(gostring.ToFloat64(y), 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TbGoodsPrice 淘宝商品券后价
|
||||||
|
func TbGoodsPrice(y, x float64) float64 {
|
||||||
|
return Round(y-x, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TbCommission 淘宝佣金
|
||||||
|
func TbCommission(y, x float64) float64 {
|
||||||
|
return Round((y*x)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WmCouponAmount 小商店优惠券金额
|
||||||
|
func WmCouponAmount(y string) float64 {
|
||||||
|
return Round(gostring.ToFloat64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WmCouponProportion 小商店佣金比率
|
||||||
|
func WmCouponProportion(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WmCommission 小商店佣金
|
||||||
|
func WmCommission(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WmGoodsOriginalPrice 小商店商品原价
|
||||||
|
func WmGoodsOriginalPrice(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WmGoodsPrice 小商店商品券后价
|
||||||
|
func WmGoodsPrice(y int64) float64 {
|
||||||
|
return Round(float64(y)/100, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// JdCommission 京东佣金
|
||||||
|
func JdCommission(y, x float64) float64 {
|
||||||
|
return Round((y*x)/100, 2)
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package godecimal
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDecimal(t *testing.T) {
|
||||||
|
t.Log(Decimal(2.3333))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRound(t *testing.T) {
|
||||||
|
t.Log(Round(2.3333, 1))
|
||||||
|
t.Log(Round(2.3333, 2))
|
||||||
|
t.Log(Round(2.3333, 3))
|
||||||
|
t.Log(Round(2.3333, 4))
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
package godecimal
|
||||||
|
|
||||||
|
const Version = "1.0.0"
|
@ -0,0 +1,7 @@
|
|||||||
|
package godecimal
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestVersion(t *testing.T) {
|
||||||
|
t.Log(Version)
|
||||||
|
}
|
Loading…
Reference in new issue