| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package main
- import (
- "fmt"
- "math"
- "testing"
- "github.com/shopspring/decimal"
- )
- func Test111(t *testing.T) {
- amount, _ := decimal.NewFromString("327312.6934")
- amountFlo := amount.IntPart()
- t.Log(amountFlo)
- count := int(amountFlo)/100000 + 1
- total := 0
- for i := 1; i < count; i++ {
- total = total + 100000
- }
- t.Log(total)
- }
- func Test222(t *testing.T) {
- amount, _ := decimal.NewFromString("300000.2934")
- invoicePart := int(math.Ceil(amount.InexactFloat64() / 100000))
- t.Log(invoicePart)
- }
- func Test333(t *testing.T) {
- amount, _ := decimal.NewFromString("-290.83")
- t.Log(amount)
- t.Log(amount.Neg())
- amount2, _ := decimal.NewFromString("290.83")
- t.Log(amount2)
- t.Log(amount2.Neg())
- }
- func Test444(t *testing.T) {
- amount, _ := decimal.NewFromString("300000.2934")
- t.Log(amount.RoundDown(2))
- t.Log(amount.RoundDown(2).StringFixed(2))
- amount1, _ := decimal.NewFromString("300000.2")
- t.Log(amount1.RoundDown(2))
- t.Log(amount1.RoundDown(2).StringFixed(2))
- amount2, _ := decimal.NewFromString("300000.297")
- t.Log(amount2.RoundDown(2))
- t.Log(amount2.RoundDown(2).StringFixed(2))
- amount3, _ := decimal.NewFromString("300000")
- t.Log(amount3.RoundDown(2))
- t.Log(amount3.RoundDown(2).StringFixed(2))
- amount4, _ := decimal.NewFromString("300000.2834")
- t.Log(amount4.RoundFloor(2))
- t.Log(amount4.RoundDown(2))
- t.Log(amount4.RoundUp(2))
- t.Log(amount4.RoundBank(2))
- t.Log(amount4.RoundCeil(2))
- }
- func Test555(t *testing.T) {
- amount1, _ := decimal.NewFromString("300000.2834")
- max := decimal.NewFromFloat(100000)
- t.Log(amount1.Div(max).RoundUp(0).IntPart())
- amount2, _ := decimal.NewFromString("210000.2834")
- t.Log(amount2.Div(max).RoundUp(0).IntPart())
- amount3, _ := decimal.NewFromString("200000")
- t.Log(amount3.Div(max).RoundUp(0).IntPart())
- }
- func Test666(t *testing.T) {
- t.Log(decimal.NewFromInt(30).Mul(decimal.NewFromFloat(0.01)).StringFixed(2))
- }
- func Test_New(t *testing.T) {
- amount1, _ := decimal.NewFromString("300012.2834")
- t.Log(amount1)
- t.Log(amount1.String())
- t.Log(amount1.IntPart()) //获取整数部分
- t.Log(amount1.InexactFloat64())
- fmt.Println()
- amount2 := decimal.NewFromFloat(300012.2834)
- t.Log(amount2)
- t.Log(amount2.String())
- fmt.Println()
- amount3 := decimal.NewFromInt(300012)
- t.Log(amount3)
- t.Log(amount3.String())
- t.Log(amount3.InexactFloat64())
- }
- func Test_StringFixed(t *testing.T) {
- amount1, _ := decimal.NewFromString("300012.2834")
- t.Log(amount1.StringFixed(4)) // 300012.2834
- amount2, _ := decimal.NewFromString("300012.2834")
- t.Log(amount2.StringFixed(3)) // 300012.283
- amount3, _ := decimal.NewFromString("300012.2834")
- t.Log(amount3.StringFixed(2)) // 300012.28
- amount4, _ := decimal.NewFromString("300012.2834")
- t.Log(amount4.StringFixed(1)) // 300012.3
- amount5, _ := decimal.NewFromString("300012.2834")
- t.Log(amount5.StringFixed(0)) // 300012
- amount6, _ := decimal.NewFromString("300012.2834")
- t.Log(amount6.StringFixed(-1)) // 300010
- }
- func Test_Round(t *testing.T) {
- amount1, _ := decimal.NewFromString("300000.2834")
- t.Log(amount1.Round(2).StringFixed(2)) // 300000.28
- amount2, _ := decimal.NewFromString("300000.2864")
- t.Log(amount2.Round(2).StringFixed(2)) // 00000.29
- amount3, _ := decimal.NewFromString("300000.2")
- t.Log(amount3.Round(2).StringFixed(2)) // 300000.20
- amount4, _ := decimal.NewFromString("300000")
- t.Log(amount4.Round(2).StringFixed(2)) // 300000.00
- t.Log("--- StringFixed ---")
- amount5, _ := decimal.NewFromString("300000.2834")
- t.Log(amount5.StringFixed(2)) // 300000.28
- amount6, _ := decimal.NewFromString("300000.2864")
- t.Log(amount6.StringFixed(2)) // 300000.29
- amount7, _ := decimal.NewFromString("300000.2")
- t.Log(amount7.StringFixed(2)) // 300000.20
- amount8, _ := decimal.NewFromString("300000")
- t.Log(amount8.StringFixed(2)) // 300000.00
- t.Log("--- Round ---")
- amount9, _ := decimal.NewFromString("300000.2834")
- t.Log(amount9.Round(2)) // 300000.28
- amount10, _ := decimal.NewFromString("300000.2864")
- t.Log(amount10.Round(2)) // 00000.29
- amount11, _ := decimal.NewFromString("300000.2")
- t.Log(amount11.Round(2)) // 300000.2
- amount12, _ := decimal.NewFromString("300000")
- t.Log(amount12.Round(2)) // 300000
- }
- func Test_RoundUp(t *testing.T) {
- amount1, _ := decimal.NewFromString("300000.2834")
- t.Log(amount1.RoundUp(2).StringFixed(2)) // 300000.29
- amount2, _ := decimal.NewFromString("300000.2864")
- t.Log(amount2.RoundUp(2).StringFixed(2)) // 300000.29
- amount3, _ := decimal.NewFromString("300000.2")
- t.Log(amount3.RoundUp(2).StringFixed(2)) // 300000.20
- amount4, _ := decimal.NewFromString("300000")
- t.Log(amount4.RoundUp(2).StringFixed(2)) //300000.00
- }
- func Test_RoundDown(t *testing.T) {
- amount1, _ := decimal.NewFromString("300000.2834")
- t.Log(amount1.RoundDown(2).StringFixed(2)) //300000.28
- amount2, _ := decimal.NewFromString("300000.2864")
- t.Log(amount2.RoundDown(2).StringFixed(2)) //300000.28
- amount3, _ := decimal.NewFromString("300000.2")
- t.Log(amount3.RoundDown(2).StringFixed(2)) //300000.20
- amount4, _ := decimal.NewFromString("300000")
- t.Log(amount4.StringFixed(2)) // 300000.20
- }
|