50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package utility
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"strconv"
|
|
"testing"
|
|
)
|
|
|
|
func Test_(t *testing.T) {
|
|
// t.Log(decimal.NewFromFloat(0))
|
|
t.Log(strconv.FormatFloat(1.04, 'f', 1, 64))
|
|
t.Log(strconv.FormatFloat(1.05, 'f', 1, 64))
|
|
t.Log(strconv.FormatFloat(1.06, 'f', 1, 64))
|
|
t.Log(strconv.FormatFloat(1.006, 'f', 2, 64))
|
|
// t.Log(strconv.FormatFloat(`1.006`, 64))
|
|
}
|
|
|
|
// i := int64(32)
|
|
// s := strconv.FormatInt(i, 16)
|
|
// println(s)
|
|
|
|
// 对比下 Float64ToString 和 FloatCutStr 的效率
|
|
// go test -bench=_QE_ -benchmem
|
|
// -benchtime 默认为1秒 -benchmem 获得内存分配的统计数据
|
|
func Benchmark_QE_1(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
Float64ToString(getRandData(), 2)
|
|
}
|
|
}
|
|
|
|
func Benchmark_QE_2(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
FloatCutStr(getRandData(), 2) // 已废弃
|
|
}
|
|
}
|
|
|
|
func getRandData() float64 {
|
|
return float64(rand.Intn(1000000)) / 1000
|
|
}
|
|
func TestTrimHtml(t *testing.T) {
|
|
a := `sff` // `<script>alert('ab')</script>`
|
|
x := TrimHtml(a)
|
|
fmt.Print(x)
|
|
}
|
|
|
|
// Benchmark_QE_1-6 4902826 243.3 ns/op 31 B/op 2 allocs/op
|
|
// Benchmark_QE_2-6 1275004 940.6 ns/op 137 B/op 11 allocs/op
|
|
// 故此将优先使用 Float64ToString 并将已使用的 FloatCutStr 进行替换
|