code: func (z *Dec) SetString(s string) (*Dec, bool) {
  	r := strings.NewReader(s)
  	_, err := z.scan(r)
  	if err != nil {
  		return nil, false
  	}
  	_, _, err = r.ReadRune()
  	if err != io.EOF {
  		return nil, false
  	}
  	// err == io.EOF => scan consumed all of s
  	return z, true
  }
docs: // SetString sets z to the value of s, interpreted as a decimal (base 10),
  // and returns z and a boolean indicating success. The scale of z is the
  // number of digits after the decimal point (including any trailing 0s),
  // or 0 if there is no decimal point. If SetString fails, the value of z
  // is undefined but the returned value is nil.