Source file
src/gopkg.in/inf.v0/rounder_example_test.go
1 package inf_test
2
3 import (
4 "fmt"
5 "os"
6 "text/tabwriter"
7
8 "gopkg.in/inf.v0"
9 )
10
11
12
13 func ExampleRounder() {
14 var vals = []struct {
15 x string
16 s inf.Scale
17 }{
18 {"-0.18", 1}, {"-0.15", 1}, {"-0.12", 1}, {"-0.10", 1},
19 {"-0.08", 1}, {"-0.05", 1}, {"-0.02", 1}, {"0.00", 1},
20 {"0.02", 1}, {"0.05", 1}, {"0.08", 1}, {"0.10", 1},
21 {"0.12", 1}, {"0.15", 1}, {"0.18", 1},
22 }
23
24 var rounders = []struct {
25 name string
26 rounder inf.Rounder
27 }{
28 {"RoundDown", inf.RoundDown}, {"RoundUp", inf.RoundUp},
29 {"RoundCeil", inf.RoundCeil}, {"RoundFloor", inf.RoundFloor},
30 {"RoundHalfDown", inf.RoundHalfDown}, {"RoundHalfUp", inf.RoundHalfUp},
31 {"RoundHalfEven", inf.RoundHalfEven}, {"RoundExact", inf.RoundExact},
32 }
33
34 fmt.Println("The results of new(inf.Dec).Round(x, s, inf.RoundXXX):")
35 fmt.Println()
36 w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', tabwriter.AlignRight)
37 fmt.Fprint(w, "x\ts\t|\t")
38 for _, r := range rounders {
39 fmt.Fprintf(w, "%s\t", r.name[5:])
40 }
41 fmt.Fprintln(w)
42 for _, v := range vals {
43 fmt.Fprintf(w, "%s\t%d\t|\t", v.x, v.s)
44 for _, r := range rounders {
45 x, _ := new(inf.Dec).SetString(v.x)
46 z := new(inf.Dec).Round(x, v.s, r.rounder)
47 fmt.Fprintf(w, "%d\t", z)
48 }
49 fmt.Fprintln(w)
50 }
51 w.Flush()
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 }
74
View as plain text