1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package inf_test
- import (
- "fmt"
- "log"
- )
- import "gopkg.in/inf.v0"
- func ExampleDec_SetString() {
- d := new(inf.Dec)
- d.SetString("012345.67890") // decimal; leading 0 ignored; trailing 0 kept
- fmt.Println(d)
- // Output: 12345.67890
- }
- func ExampleDec_Scan() {
- // The Scan function is rarely used directly;
- // the fmt package recognizes it as an implementation of fmt.Scanner.
- d := new(inf.Dec)
- _, err := fmt.Sscan("184467440.73709551617", d)
- if err != nil {
- log.Println("error scanning value:", err)
- } else {
- fmt.Println(d)
- }
- // Output: 184467440.73709551617
- }
- func ExampleDec_QuoRound_scale2RoundDown() {
- // 10 / 3 is an infinite decimal; it has no exact Dec representation
- x, y := inf.NewDec(10, 0), inf.NewDec(3, 0)
- // use 2 digits beyond the decimal point, round towards 0
- z := new(inf.Dec).QuoRound(x, y, 2, inf.RoundDown)
- fmt.Println(z)
- // Output: 3.33
- }
- func ExampleDec_QuoRound_scale2RoundCeil() {
- // -42 / 400 is an finite decimal with 3 digits beyond the decimal point
- x, y := inf.NewDec(-42, 0), inf.NewDec(400, 0)
- // use 2 digits beyond decimal point, round towards positive infinity
- z := new(inf.Dec).QuoRound(x, y, 2, inf.RoundCeil)
- fmt.Println(z)
- // Output: -0.10
- }
- func ExampleDec_QuoExact_ok() {
- // 1 / 25 is a finite decimal; it has exact Dec representation
- x, y := inf.NewDec(1, 0), inf.NewDec(25, 0)
- z := new(inf.Dec).QuoExact(x, y)
- fmt.Println(z)
- // Output: 0.04
- }
- func ExampleDec_QuoExact_fail() {
- // 1 / 3 is an infinite decimal; it has no exact Dec representation
- x, y := inf.NewDec(1, 0), inf.NewDec(3, 0)
- z := new(inf.Dec).QuoExact(x, y)
- fmt.Println(z)
- // Output: <nil>
- }
|