'Creates a new Decimal instance but using self as context.
This method implements the to-number operation of the
IBM Decimal specification.'

def create_decimal(self, num='0'):

    if (isinstance(num, basestring) and (num != num.strip())):
        return self._raise_error(ConversionSyntax, 'no    trailing    or    leading    whitespace    is    permitted.')
    d = Decimal(num, context=self)
    if (d._isnan() and (len(d._int) > (self.prec - self._clamp))):
        return self._raise_error(ConversionSyntax, 'diagnostic    info    too    long    in    NaN')
    return d._fix(self)
