// NewMilliQuantity returns a new Quantity representing the given // value * 1/1000 in the given format. Note that BinarySI formatting // will round fractional values, and will be changed to DecimalSI for // values x where (-1 < x < 1) && (x != 0). func NewMilliQuantity(value int64, format Format) *Quantity { return &Quantity{ Amount: inf.NewDec(value, 3), Format: format, } }
splitRE = regexp.MustCompile(splitREString) // Errors that could happen while parsing a string. ErrFormatWrong = errors.New("quantities must match the regular expression '" + splitREString + "'") ErrNumeric = errors.New("unable to parse numeric part of quantity") ErrSuffix = errors.New("unable to parse quantity's suffix") // Commonly needed big.Int values-- treat as read only! bigTen = big.NewInt(10) bigZero = big.NewInt(0) bigOne = big.NewInt(1) bigThousand = big.NewInt(1000) big1024 = big.NewInt(1024) // Commonly needed inf.Dec values-- treat as read only! decZero = inf.NewDec(0, 0) decOne = inf.NewDec(1, 0) decMinusOne = inf.NewDec(-1, 0) decThousand = inf.NewDec(1000, 0) dec1024 = inf.NewDec(1024, 0) decMinus1024 = inf.NewDec(-1024, 0) // Largest (in magnitude) number allowed. maxAllowed = inf.NewDec((1<<63)-1, 0) // == max int64 // The maximum value we can represent milli-units for. // Compare with the return value of Quantity.Value() to // see if it's safe to use Quantity.MilliValue(). MaxMilliValue = int64(((1 << 63) - 1) / 1000) )